From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51008) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ff3P8-00085D-Ff for guix-patches@gnu.org; Mon, 16 Jul 2018 09:19:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ff3P4-0003Qe-Fl for guix-patches@gnu.org; Mon, 16 Jul 2018 09:19:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:37329) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ff3P4-0003QY-Bg for guix-patches@gnu.org; Mon, 16 Jul 2018 09:19:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ff3P4-0005Bh-2o for guix-patches@gnu.org; Mon, 16 Jul 2018 09:19:02 -0400 Subject: [bug#32121] [PATCH 3/5] database: Add support for database upgrades. Resent-Message-ID: From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20180710230247.16639-1-clement@lassieur.org> <20180710230247.16639-3-clement@lassieur.org> <87h8l1g7eo.fsf@lassieur.org> Date: Mon, 16 Jul 2018 15:17:53 +0200 In-Reply-To: <87h8l1g7eo.fsf@lassieur.org> ("=?UTF-8?Q?Cl=C3=A9ment?= Lassieur"'s message of "Sat, 14 Jul 2018 17:32:15 +0200") Message-ID: <87efg3wc8u.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: =?UTF-8?Q?Cl=C3=A9ment?= Lassieur Cc: 32121@debbugs.gnu.org Hello, Cl=C3=A9ment Lassieur skribis: > Cl=C3=A9ment Lassieur writes: > >> +(define (db-get-version db) >> + (if (pair? (sqlite-exec db "SELECT name FROM sqlite_master WHERE \ >> +type=3D'table' AND name=3D'SchemaVersion';")) >> + (vector-ref >> + (car (sqlite-exec db "SELECT MAX(version) FROM SchemaVersion;"))= 0) >> + 0)) >> + >> +(define (db-set-version db version) >> + (sqlite-exec db "INSERT INTO SchemaVersion (version) VALUES (" version >> + ");")) > > Actually, there is: > > PRAGMA schema.user_version; > PRAGMA schema.user_version =3D integer ; > > The user_version pragma will to get or set the value of the user-version > integer at offset 60 in the database header. The user-version is an > integer that is available to applications to use however they > want. SQLite makes no use of the user-version itself. > > Better use them than creating an ad-hoc table I guess, WDYT? Sounds good, yes. Thanks, Ludo=E2=80=99.