From 1ad6dad8da0d51e9522f9d27cf48531fa23b24ba Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Fri, 30 Aug 2019 20:56:26 +0300 Subject: Adapt to optional package revision --- bpkg/database.cxx | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'bpkg/database.cxx') diff --git a/bpkg/database.cxx b/bpkg/database.cxx index a66b3a3..68a2a34 100644 --- a/bpkg/database.cxx +++ b/bpkg/database.cxx @@ -42,15 +42,39 @@ namespace bpkg // Register the data migration functions. // -#if 0 template using migration_entry = odb::data_migration_entry; static const migration_entry<6> migrate_v6 ([] (odb::database& db) { + // Set the zero version revision to NULL. + // + auto migrate_rev = [&db] (const char* table, const char* column) + { + db.execute (string ("UPDATE ") + table + " SET " + column + " = NULL " + + "WHERE " + column + " = 0"); + }; + + // The version package manifest value. Note: is not part of a primary key. + // + migrate_rev ("selected_package", "version_revision"); + + // The depends package manifest value endpoint versions. + // + // Note that previously the zero and absent revisions had the same + // semantics. Now the semantics differs and the zero revision is preserved + // (see libbpkg/manifest.hxx for details). + // + migrate_rev ("selected_package_prerequisites", "min_version_revision"); + migrate_rev ("selected_package_prerequisites", "max_version_revision"); + + migrate_rev ("available_package_dependency_alternatives", + "dep_min_version_revision"); + + migrate_rev ("available_package_dependency_alternatives", + "dep_max_version_revision"); }); -#endif database open (const dir_path& d, tracer& tr, bool create) -- cgit v1.1