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;
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"