feat: rename schema (#19891)

This commit is contained in:
Jason Rasmussen
2025-07-14 10:13:06 -04:00
committed by GitHub
parent 33c29e4305
commit c699df002a
103 changed files with 4378 additions and 3224 deletions

View File

@@ -31,7 +31,8 @@ export const compareConstraints: Comparer<DatabaseConstraint> = {
}
case ConstraintType.CHECK: {
return asRenameKey([constraint.type, constraint.tableName, constraint.expression]);
const expression = constraint.expression.replaceAll('(', '').replaceAll(')', '');
return asRenameKey([constraint.type, constraint.tableName, expression]);
}
}
},

View File

@@ -7,7 +7,7 @@ export const compareIndexes: Comparer<DatabaseIndex> = {
return index.override.value.sql.replace(index.name, 'INDEX_NAME');
}
return asRenameKey([index.tableName, ...(index.columnNames || []).toSorted(), index.unique]);
return asRenameKey([index.tableName, ...(index.columnNames || []), index.unique]);
},
onRename: (source, target) => [
{

View File

@@ -30,28 +30,35 @@ export const schemaDiff = (source: DatabaseSchema, target: DatabaseSchema, optio
type SchemaName = SchemaDiff['type'];
const itemMap: Record<SchemaName, SchemaDiff[]> = {
EnumCreate: [],
EnumDrop: [],
ExtensionCreate: [],
ExtensionDrop: [],
FunctionCreate: [],
FunctionDrop: [],
TableCreate: [],
TableDrop: [],
ColumnAdd: [],
ColumnAlter: [],
ColumnRename: [],
ColumnDrop: [],
ConstraintAdd: [],
ConstraintDrop: [],
ConstraintRename: [],
IndexCreate: [],
IndexRename: [],
IndexDrop: [],
TriggerCreate: [],
TriggerDrop: [],
ExtensionDrop: [],
ExtensionCreate: [],
ParameterSet: [],
ParameterReset: [],
FunctionDrop: [],
FunctionCreate: [],
EnumDrop: [],
EnumCreate: [],
TriggerDrop: [],
ConstraintDrop: [],
TableDrop: [],
ColumnDrop: [],
ColumnAdd: [],
ColumnAlter: [],
TableCreate: [],
ConstraintAdd: [],
TriggerCreate: [],
IndexCreate: [],
IndexDrop: [],
OverrideCreate: [],
OverrideUpdate: [],
OverrideDrop: [],