force recreate table when changing autoincrement flag

This commit is contained in:
Jan Prochazka
2024-11-19 10:06:49 +01:00
parent 274fb595a2
commit b0012872fa
6 changed files with 28 additions and 2 deletions

View File

@@ -416,6 +416,12 @@ export class AlterPlan {
this._testTableRecreate(op, 'createConstraint', obj => this._canCreateConstraint(obj), 'newObject') ||
this._testTableRecreate(op, 'dropConstraint', obj => this._canDropConstraint(obj), 'oldObject') ||
this._testTableRecreate(op, 'changeColumn', this.dialect.changeColumn, 'newObject') ||
this._testTableRecreate(
op,
'changeColumn',
obj => this._canChangeAutoIncrement(obj, op as AlterOperation_ChangeColumn),
'newObject'
) ||
this._testTableRecreate(op, 'renameColumn', true, 'object') || [op]
);
});
@@ -443,6 +449,13 @@ export class AlterPlan {
return null;
}
_canChangeAutoIncrement(column: ColumnInfo, op: AlterOperation_ChangeColumn) {
if (!!column.autoIncrement != !!op.oldObject.autoIncrement) {
return this.dialect.changeAutoIncrement;
}
return null;
}
_testTableRecreate(
op: AlterOperation,
operationType: string,