From d78ba3e97cbe0d6c641120d94d47e25b198febfb Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 25 Apr 2013 07:35:45 +0200 Subject: Add support for schema version table --- odb/schema-catalog.cxx | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'odb/schema-catalog.cxx') diff --git a/odb/schema-catalog.cxx b/odb/schema-catalog.cxx index 9599afe..137931f 100644 --- a/odb/schema-catalog.cxx +++ b/odb/schema-catalog.cxx @@ -147,6 +147,30 @@ namespace odb if (!pre || m != migrate_both) break; } + + // Update the schema version on the database instance. + // + db.schema_version (v, m == migrate_pre, name); + } + + void schema_catalog:: + migrate (database& db, schema_version v, const std::string& name) + { + schema_version latest (latest_version (db, name)); + + if (v == 0) + v = latest; + else if (v > latest) + throw unknown_schema_version (v); + + for (schema_version i (next_version (db, 0, name)); + i != 0 && i <= v; + i = next_version (db, i, name)) + { + migrate_schema_pre (db, i, name); + // migrate_data (db, i, name); + migrate_schema_post (db, i, name); + } } schema_version schema_catalog:: -- cgit v1.1