]> xenbits.xensource.com Git - xcp/xen-api.git/commitdiff
CA-48995: after upgrading an old database schema, make sure to bump the schema to...
authorDavid Scott <dave.scott@eu.citrix.com>
Wed, 26 Jan 2011 17:39:05 +0000 (17:39 +0000)
committerDavid Scott <dave.scott@eu.citrix.com>
Wed, 26 Jan 2011 17:39:05 +0000 (17:39 +0000)
Signed-off-by: David Scott <dave.scott@eu.citrix.com>
ocaml/database/backend_xml.ml
ocaml/database/db_upgrade.ml

index 90960fb2722483d8ebb61b7f4c530d63740f4796..efcd13a0c72d3692dd1d8f81e20f13edbdd0c492 100644 (file)
@@ -55,7 +55,7 @@ let unmarshall dbconn =
 let populate_and_read_manifest dbconn =
   Printf.printf "attempting to restore database from %s\n" dbconn.Parse_db_conf.path;
   let manifest, unmarshalled_db = unmarshall dbconn in
-  debug "finished parsing xml";
+  debug "database unmarshalled, schema version = %d.%d" manifest.Db_cache_types.schema_major_vsn manifest.Db_cache_types.schema_minor_vsn;
   (* version_check manifest; *) 
   update_index unmarshalled_db;
   iter_over_tables (fun name table -> set_table_in_cache cache name table) unmarshalled_db;
index 5c50523d5f0c8bae2978f3a4f1f734cd28a6afb5..e86dad7460aff368d11ef12ce3090f376731d564 100644 (file)
@@ -285,7 +285,8 @@ let maybe_upgrade most_recent_db =
   if previous_vsn > latest_vsn
   then warn "Database schema version %s is more recent than binary %s: downgrade is unsupported." previous_string previous_string
   else 
-    if previous_vsn < latest_vsn 
-    then apply_upgrade_rules upgrade_rules previous_vsn
-    else
-      debug "Database schemas match, no upgrade required"
+    if previous_vsn < latest_vsn then begin
+               apply_upgrade_rules upgrade_rules previous_vsn;
+               debug "Upgrade rules applied, bumping schema version to %d.%d" latest_major_vsn latest_minor_vsn;
+               Db_cache_types.set_schema_vsn Db_backend.cache latest_vsn
+       end else debug "Database schemas match, no upgrade required"