From: David Scott Date: Wed, 26 Jan 2011 17:39:05 +0000 (+0000) Subject: CA-48995: after upgrading an old database schema, make sure to bump the schema to... X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=179d365d7240a1e822b92ac76f40d2c01d733d9e;p=xcp%2Fxen-api.git CA-48995: after upgrading an old database schema, make sure to bump the schema to the new level (or we will persist forever on the old level...) Signed-off-by: David Scott --- diff --git a/ocaml/database/backend_xml.ml b/ocaml/database/backend_xml.ml index 90960fb2..efcd13a0 100644 --- a/ocaml/database/backend_xml.ml +++ b/ocaml/database/backend_xml.ml @@ -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; diff --git a/ocaml/database/db_upgrade.ml b/ocaml/database/db_upgrade.ml index 5c50523d..e86dad74 100644 --- a/ocaml/database/db_upgrade.ml +++ b/ocaml/database/db_upgrade.ml @@ -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"