diff --git a/packages/tools/src/alterPlan.ts b/packages/tools/src/alterPlan.ts index 1143ff165..a609042fa 100644 --- a/packages/tools/src/alterPlan.ts +++ b/packages/tools/src/alterPlan.ts @@ -91,8 +91,8 @@ interface AlterOperation_RenameConstraint { } interface AlterOperation_RecreateTable { operationType: 'recreateTable'; - table: TableInfo; - operations: AlterOperation[]; + oldTable: TableInfo; + newTable: TableInfo; } interface AlterOperation_FillPreloadedRows { operationType: 'fillPreloadedRows'; @@ -249,11 +249,11 @@ export class AlterPlan { }); } - recreateTable(table: TableInfo, operations: AlterOperation[]) { + recreateTable(oldTable: TableInfo, newTable: TableInfo) { this.operations.push({ operationType: 'recreateTable', - table, - operations, + oldTable, + newTable, }); this.recreates.tables += 1; } @@ -504,15 +504,19 @@ export class AlterPlan { return []; } - const table = this.wholeNewDb.tables.find( + const oldTable = this.wholeOldDb.tables.find( + x => x.pureName == op[objectField].pureName && x.schemaName == op[objectField].schemaName + ); + const newTable = this.wholeNewDb.tables.find( x => x.pureName == op[objectField].pureName && x.schemaName == op[objectField].schemaName ); this.recreates.tables += 1; return [ { operationType: 'recreateTable', - table, - operations: [op], + oldTable, + newTable, + // operations: [op], }, ]; } @@ -520,35 +524,38 @@ export class AlterPlan { } _groupTableRecreations(): AlterOperation[] { - const res = []; - const recreates = {}; - for (const op of this.operations) { - if (op.operationType == 'recreateTable' && op.table) { - const existingRecreate = recreates[`${op.table.schemaName}||${op.table.pureName}`]; - if (existingRecreate) { - existingRecreate.operations.push(...op.operations); - } else { - const recreate = { - ...op, - operations: [...op.operations], - }; - res.push(recreate); - recreates[`${op.table.schemaName}||${op.table.pureName}`] = recreate; - } - } else { - // @ts-ignore - const oldObject: TableInfo = op.oldObject || op.object; - if (oldObject) { - const recreated = recreates[`${oldObject.schemaName}||${oldObject.pureName}`]; - if (recreated) { - recreated.operations.push(op); - continue; - } - } - res.push(op); - } - } - return res; + return this.operations; + + // this is not implemented now + // const res = []; + // const recreates = {}; + // for (const op of this.operations) { + // if (op.operationType == 'recreateTable' && op.table) { + // const existingRecreate = recreates[`${op.table.schemaName}||${op.table.pureName}`]; + // if (existingRecreate) { + // existingRecreate.operations.push(...op.operations); + // } else { + // const recreate = { + // ...op, + // operations: [...op.operations], + // }; + // res.push(recreate); + // recreates[`${op.table.schemaName}||${op.table.pureName}`] = recreate; + // } + // } else { + // // @ts-ignore + // const oldObject: TableInfo = op.oldObject || op.object; + // if (oldObject) { + // const recreated = recreates[`${oldObject.schemaName}||${oldObject.pureName}`]; + // if (recreated) { + // recreated.operations.push(op); + // continue; + // } + // } + // res.push(op); + // } + // } + // return res; } _moveForeignKeysToLast(): AlterOperation[] { @@ -679,16 +686,16 @@ export function runAlterOperation(op: AlterOperation, processor: AlterProcessor) break; case 'recreateTable': { - const oldTable = generateTablePairingId(op.table); - const newTable = _.cloneDeep(oldTable); - const newDb = DatabaseAnalyser.createEmptyStructure(); - newDb.tables.push(newTable); - // console.log('////////////////////////////newTable1', newTable); - op.operations.forEach(child => runAlterOperation(child, new DatabaseInfoAlterProcessor(newDb))); - // console.log('////////////////////////////op.operations', op.operations); - // console.log('////////////////////////////op.table', op.table); - // console.log('////////////////////////////newTable2', newTable); - processor.recreateTable(oldTable, newTable); + // const oldTable = generateTablePairingId(op.table); + // const newTable = _.cloneDeep(oldTable); + // const newDb = DatabaseAnalyser.createEmptyStructure(); + // newDb.tables.push(newTable); + // // console.log('////////////////////////////newTable1', newTable); + // op.operations.forEach(child => runAlterOperation(child, new DatabaseInfoAlterProcessor(newDb))); + // // console.log('////////////////////////////op.operations', op.operations); + // // console.log('////////////////////////////op.table', op.table); + // // console.log('////////////////////////////newTable2', newTable); + processor.recreateTable(op.oldTable, op.newTable); } break; }