From 78d3f5fce941f9211aefb9025b67e809980ec8fa Mon Sep 17 00:00:00 2001 From: Robert Habermeier Date: Tue, 1 Nov 2016 16:13:55 +0100 Subject: [PATCH] apply post-consolidation migrations after consolidating (#3048) --- parity/migration.rs | 7 ++++++- util/src/migration/mod.rs | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/parity/migration.rs b/parity/migration.rs index 7ae631c91..6eb11c517 100644 --- a/parity/migration.rs +++ b/parity/migration.rs @@ -248,9 +248,11 @@ pub fn migrate(path: &Path, pruning: Algorithm, compaction_profile: CompactionPr // Perform pre-consolidation migrations if version < CONSOLIDATION_VERSION && exists(&legacy::blocks_database_path(path)) { println!("Migrating database from version {} to {}", version, CONSOLIDATION_VERSION); - try!(migrate_database(version, legacy::blocks_database_path(path), try!(legacy::blocks_database_migrations(&compaction_profile)))); + try!(migrate_database(version, legacy::extras_database_path(path), try!(legacy::extras_database_migrations(&compaction_profile)))); try!(migrate_database(version, legacy::state_database_path(path), try!(legacy::state_database_migrations(pruning, &compaction_profile)))); + try!(migrate_database(version, legacy::blocks_database_path(path), try!(legacy::blocks_database_migrations(&compaction_profile)))); + let db_path = consolidated_database_path(path); // Remove the database dir (it shouldn't exist anyway, but it might when migration was interrupted) let _ = fs::remove_dir_all(db_path.clone()); @@ -266,6 +268,9 @@ pub fn migrate(path: &Path, pruning: Algorithm, compaction_profile: CompactionPr println!("Migration finished"); } + // update version so we can apply post-consolidation migrations. + let version = ::std::cmp::max(CONSOLIDATION_VERSION, version); + // Further migrations if version >= CONSOLIDATION_VERSION && version < CURRENT_VERSION && exists(&consolidated_database_path(path)) { println!("Migrating database from version {} to {}", ::std::cmp::max(CONSOLIDATION_VERSION, version), CURRENT_VERSION); diff --git a/util/src/migration/mod.rs b/util/src/migration/mod.rs index 5f89169d8..4313fc5ae 100644 --- a/util/src/migration/mod.rs +++ b/util/src/migration/mod.rs @@ -248,6 +248,7 @@ impl Manager { let mut cur_db = try!(Database::open(&db_config, old_path_str).map_err(Error::Custom)); for migration in migrations { + trace!(target: "migration", "starting migration to version {}", migration.version()); // Change number of columns in new db let current_columns = db_config.columns; db_config.columns = migration.columns();