apply post-consolidation migrations after consolidating (#3048)
This commit is contained in:
		
							parent
							
								
									93327e8c73
								
							
						
					
					
						commit
						78d3f5fce9
					
				@ -248,9 +248,11 @@ pub fn migrate(path: &Path, pruning: Algorithm, compaction_profile: CompactionPr
 | 
				
			|||||||
	// Perform pre-consolidation migrations
 | 
						// Perform pre-consolidation migrations
 | 
				
			||||||
	if version < CONSOLIDATION_VERSION && exists(&legacy::blocks_database_path(path)) {
 | 
						if version < CONSOLIDATION_VERSION && exists(&legacy::blocks_database_path(path)) {
 | 
				
			||||||
		println!("Migrating database from version {} to {}", version, CONSOLIDATION_VERSION);
 | 
							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::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::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);
 | 
							let db_path = consolidated_database_path(path);
 | 
				
			||||||
		// Remove the database dir (it shouldn't exist anyway, but it might when migration was interrupted)
 | 
							// Remove the database dir (it shouldn't exist anyway, but it might when migration was interrupted)
 | 
				
			||||||
		let _ = fs::remove_dir_all(db_path.clone());
 | 
							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");
 | 
							println!("Migration finished");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// update version so we can apply post-consolidation migrations.
 | 
				
			||||||
 | 
						let version = ::std::cmp::max(CONSOLIDATION_VERSION, version);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Further migrations
 | 
						// Further migrations
 | 
				
			||||||
	if version >= CONSOLIDATION_VERSION && version < CURRENT_VERSION && exists(&consolidated_database_path(path)) {
 | 
						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);
 | 
							println!("Migrating database from version {} to {}", ::std::cmp::max(CONSOLIDATION_VERSION, version), CURRENT_VERSION);
 | 
				
			||||||
 | 
				
			|||||||
@ -248,6 +248,7 @@ impl Manager {
 | 
				
			|||||||
		let mut cur_db = try!(Database::open(&db_config, old_path_str).map_err(Error::Custom));
 | 
							let mut cur_db = try!(Database::open(&db_config, old_path_str).map_err(Error::Custom));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		for migration in migrations {
 | 
							for migration in migrations {
 | 
				
			||||||
 | 
								trace!(target: "migration", "starting migration to version {}", migration.version());
 | 
				
			||||||
			// Change number of columns in new db
 | 
								// Change number of columns in new db
 | 
				
			||||||
			let current_columns = db_config.columns;
 | 
								let current_columns = db_config.columns;
 | 
				
			||||||
			db_config.columns = migration.columns();
 | 
								db_config.columns = migration.columns();
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user