@@ -37,10 +37,11 @@ import Conversion from './Conversion';
3737 */
3838export default async function ( conversion : Conversion ) : Promise < void > {
3939 const isTableConstraintsLoaded : boolean = await migrationStateManager . get ( conversion , 'per_table_constraints_loaded' ) ;
40+ const migrateOnlyData : boolean = conversion . shouldMigrateOnlyData ( ) ;
4041
4142 const promises : Promise < void > [ ] = conversion . _tablesToMigrate . map ( async ( tableName : string ) => {
4243 if ( ! isTableConstraintsLoaded ) {
43- if ( conversion . shouldMigrateOnlyDataFor ( tableName ) ) {
44+ if ( migrateOnlyData ) {
4445 return sequencesProcessor . setSequenceValue ( conversion , tableName ) ;
4546 }
4647
@@ -54,13 +55,21 @@ export default async function(conversion: Conversion): Promise<void> {
5455 } ) ;
5556
5657 await Promise . all ( promises ) ;
57- await migrationStateManager . set ( conversion , 'per_table_constraints_loaded' ) ;
58- await processForeignKey ( conversion ) ;
59- await migrationStateManager . set ( conversion , 'foreign_keys_loaded' ) ;
58+
59+ if ( migrateOnlyData ) {
60+ await migrationStateManager . set ( conversion , 'per_table_constraints_loaded' , 'foreign_keys_loaded' , 'views_loaded' ) ;
61+ } else {
62+ await migrationStateManager . set ( conversion , 'per_table_constraints_loaded' ) ;
63+ await processForeignKey ( conversion ) ;
64+ await migrationStateManager . set ( conversion , 'foreign_keys_loaded' ) ;
65+ await processViews ( conversion ) ;
66+ await migrationStateManager . set ( conversion , 'views_loaded' ) ;
67+ }
68+
69+ await runVacuumFullAndAnalyze ( conversion ) ; // Reclaim storage occupied by dead tuples.
70+
71+ // !!!Note, dropping of data-pool and state-logs tables MUST be the last step of migration process.
6072 await dataPoolManager . dropDataPoolTable ( conversion ) ;
61- await processViews ( conversion ) ;
62- await migrationStateManager . set ( conversion , 'views_loaded' ) ;
63- await runVacuumFullAndAnalyze ( conversion ) ;
6473 await migrationStateManager . dropStateLogsTable ( conversion ) ;
6574 generateReport ( conversion , 'NMIG migration is accomplished.' ) ;
6675}
0 commit comments