Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Add migrations.
Vsevolod Stakhov committed 10 years ago
commit b9b4246ad3a8281571cf0e24679337bf532e3088
parent ad93098
3 files changed +59 -5
modified libpkg/pkgdb.c
@@ -87,7 +87,7 @@
*/

#define DB_SCHEMA_MAJOR	0
-
#define DB_SCHEMA_MINOR	31
+
#define DB_SCHEMA_MINOR	32

#define DBVERSION (DB_SCHEMA_MAJOR * 1000 + DB_SCHEMA_MINOR)

@@ -340,7 +340,8 @@ pkgdb_init(sqlite3 *sdb)
		"licenselogic INTEGER NOT NULL,"
		"time INTEGER, "
		"manifestdigest TEXT NULL, "
-
		"pkg_format_version INTEGER"
+
		"pkg_format_version INTEGER,"
+
		"dep_formula TEXT NULL"
	");"
	"CREATE UNIQUE INDEX packages_unique ON packages(name);"
	"CREATE TABLE mtree ("
modified libpkg/private/db_upgrades.h
@@ -668,6 +668,9 @@ static struct db_upgrades {
		"UNIQUE(package_id, require_id)"
	");"
	},
+
	{32,
+
	"ALTER TABLE packages ADD COLUMN dep_formula TEXT NULL;"
+
	},
	/* Mark the end of the array */
	{ -1, NULL }

modified libpkg/repo/binary/binary_private.h
@@ -49,7 +49,8 @@ static const char binary_repo_initsql[] = ""
	    "path TEXT NOT NULL,"
	    "pkg_format_version INTEGER,"
	    "manifestdigest TEXT NULL,"
-
	    "olddigest TEXT NULL"
+
	    "olddigest TEXT NULL,"
+
	    "dep_formula TEXT NULL"
	");"
	"CREATE TABLE deps ("
	    "origin TEXT,"
@@ -361,6 +362,13 @@ static const struct repo_changes repo_upgrades[] = {
	 "ALTER TABLE packages ADD COLUMN olddigest TEXT NULL;"
	 "UPDATE packages SET olddigest=manifestdigest WHERE olddigest=NULL;"
	},
+
	/* XXX: no 2011 migration! */
+
	{2011,
+
	 2012,
+
	 "Add depends formula field",
+

+
	 "ALTER TABLE packages ADD COLUMN dep_formula TEXT NULL;"
+
	},
	/* Mark the end of the array */
	{ -1, -1, NULL, NULL, }

@@ -369,6 +377,49 @@ static const struct repo_changes repo_upgrades[] = {
/* How to downgrade a newer repo to match what the current system
   expects */
static const struct repo_changes repo_downgrades[] = {
+
	{2012,
+
	 2011,
+
	 "Drop dep_formula field",
+

+
	 "ALTER TABLE packages RENAME TO packages_old;"
+
	 "CREATE TABLE packages ("
+
		"id INTEGER PRIMARY KEY,"
+
		"origin TEXT UNIQUE,"
+
		"name TEXT NOT NULL,"
+
		"version TEXT NOT NULL,"
+
		"comment TEXT NOT NULL,"
+
		"desc TEXT NOT NULL,"
+
		"osversion TEXT,"
+
		"arch TEXT NOT NULL,"
+
		"maintainer TEXT NOT NULL,"
+
		"www TEXT,"
+
		"prefix TEXT NOT NULL,"
+
		"pkgsize INTEGER NOT NULL,"
+
		"flatsize INTEGER NOT NULL,"
+
		"licenselogic INTEGER NOT NULL,"
+
		"cksum TEXT NOT NULL,"
+
		"path TEXT NOT NULL,"
+
		"pkg_format_version INTEGER,"
+
		"manifestdigest TEXT NULL,"
+
		"olddigest TEXT NULL,"
+
	");"
+
	"INSERT INTO packages (id, origin, name, version, comment, desc,"
+
	"osversion, arch, maintainer, www, prefix, pkgsize, flatsize,"
+
	"licenselogic, cksum, path, pkg_format_version, manifestdigest, olddigest) "
+
	"SELECT id, origin, name, version, comment, desc,"
+
	"osversion, arch, maintainer, www, prefix, pkgsize, flatsize,"
+
	"licenselogic, cksum, path, pkg_format_version, manifestdigest, olddigest FROM "
+
	"packages_old;"
+
	"DROP TABLE packages_old;"
+
	"CREATE INDEX packages_origin ON packages(origin COLLATE NOCASE);"
+
	"CREATE INDEX packages_name ON packages(name COLLATE NOCASE);"
+
	"CREATE INDEX packages_uid_nocase ON packages(name COLLATE NOCASE, origin COLLATE NOCASE);"
+
	"CREATE INDEX packages_version_nocase ON packages(name COLLATE NOCASE, version);"
+
	"CREATE INDEX packages_uid ON packages(name, origin);"
+
	"CREATE INDEX packages_version ON packages(name, version);"
+
	"CREATE UNIQUE INDEX packages_digest ON packages(manifestdigest);"
+
	},
+
	/* XXX: no 2011 migration! */
	{2010,
	 2009,
	 "Drop olddigest field",
@@ -528,9 +579,8 @@ static const struct repo_changes repo_downgrades[] = {
/* The package repo schema minor revision.
   Minor schema changes don't prevent older pkgng
   versions accessing the repo. */
-
#define REPO_SCHEMA_MINOR 11
+
#define REPO_SCHEMA_MINOR 12

-
/* REPO_SCHEMA_VERSION=2007 */
#define REPO_SCHEMA_VERSION (REPO_SCHEMA_MAJOR * 1000 + REPO_SCHEMA_MINOR)

#define REPO_NAME_PREFIX "repo-"