Fix enum deletion during migration v2 (#13977)
## Context - When deleting an object, we were not properly deleting all the enums, in fact some enums were inside composite fields and should have been handled as well. This was already implemented that way for object update and creation but not deletion. - Fixing an issue where creating a field with an empty string as a default value was skipped and causing an issue with non-nullable columns
This commit is contained in:
+1
-5
@@ -31,11 +31,7 @@ export const buildSqlColumnDefinition = (
|
||||
parts.push('UNIQUE');
|
||||
}
|
||||
|
||||
if (
|
||||
isDefined(column.default) &&
|
||||
column.default !== '' &&
|
||||
column.type !== 'tsvector'
|
||||
) {
|
||||
if (isDefined(column.default) && column.type !== 'tsvector') {
|
||||
const safeDefault = sanitizeDefaultValue(column.default);
|
||||
|
||||
parts.push(`DEFAULT ${safeDefault}`);
|
||||
|
||||
+1
-11
@@ -31,23 +31,13 @@ import { WorkspaceSchemaObjectActionRunnerService } from 'src/engine/workspace-m
|
||||
WorkspaceMetadataObjectActionRunnerService,
|
||||
WorkspaceMetadataIndexActionRunnerService,
|
||||
WorkspaceMetadataFieldActionRunnerService,
|
||||
WorkspaceSchemaObjectActionRunnerService,
|
||||
WorkspaceSchemaIndexActionRunnerService,
|
||||
WorkspaceSchemaFieldActionRunnerService,
|
||||
WorkspaceMetadataMigrationRunnerService,
|
||||
WorkspaceSchemaMigrationRunnerService,
|
||||
WorkspaceMigrationRunnerV2Service,
|
||||
],
|
||||
exports: [
|
||||
WorkspaceMigrationRunnerV2Service,
|
||||
WorkspaceMetadataObjectActionRunnerService,
|
||||
WorkspaceMetadataIndexActionRunnerService,
|
||||
WorkspaceMetadataFieldActionRunnerService,
|
||||
WorkspaceSchemaObjectActionRunnerService,
|
||||
WorkspaceSchemaIndexActionRunnerService,
|
||||
WorkspaceSchemaFieldActionRunnerService,
|
||||
WorkspaceMetadataMigrationRunnerService,
|
||||
WorkspaceSchemaMigrationRunnerService,
|
||||
],
|
||||
exports: [WorkspaceMigrationRunnerV2Service],
|
||||
})
|
||||
export class WorkspaceMigrationRunnerV2Module {}
|
||||
|
||||
+6
-3
@@ -49,14 +49,17 @@ export class WorkspaceSchemaObjectActionRunnerService
|
||||
tableName,
|
||||
});
|
||||
|
||||
const enumFlatFieldMetadatas = Object.values(
|
||||
const enumOrCompositeFlatFieldMetadatas = Object.values(
|
||||
flatObjectMetadataWithFlatFieldMaps.fieldsById,
|
||||
)
|
||||
.filter((field): field is FlatFieldMetadata => field != null)
|
||||
.filter((field) => isEnumFlatFieldMetadata(field));
|
||||
.filter(
|
||||
(field) =>
|
||||
isEnumFlatFieldMetadata(field) || isCompositeFlatFieldMetadata(field),
|
||||
);
|
||||
|
||||
const enumOperations = collectEnumOperationsForObject({
|
||||
flatFieldMetadatas: enumFlatFieldMetadatas,
|
||||
flatFieldMetadatas: enumOrCompositeFlatFieldMetadatas,
|
||||
tableName,
|
||||
operation: EnumOperation.DROP,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user