Fallback to default value when migrating value from enum (#6517)
When migrating the option values of a select type, if the field is non nullable (for now, only available for opportunity's "stage" standard field), we fallback to the (potentially updated) default value instead of nullifying the value to avoid getting a database error. --------- Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
@ -15,10 +15,10 @@ import { WorkspaceCacheVersionService } from 'src/engine/metadata-modules/worksp
|
||||
import { generateMigrationName } from 'src/engine/metadata-modules/workspace-migration/utils/generate-migration-name.util';
|
||||
import {
|
||||
ReferencedTable,
|
||||
WorkspaceMigrationTableActionType,
|
||||
WorkspaceMigrationColumnAction,
|
||||
WorkspaceMigrationForeignColumnDefinition,
|
||||
WorkspaceMigrationForeignTable,
|
||||
WorkspaceMigrationColumnAction,
|
||||
WorkspaceMigrationTableActionType,
|
||||
} from 'src/engine/metadata-modules/workspace-migration/workspace-migration.entity';
|
||||
import { WorkspaceMigrationService } from 'src/engine/metadata-modules/workspace-migration/workspace-migration.service';
|
||||
import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service';
|
||||
@ -77,6 +77,8 @@ export class ForeignTableService {
|
||||
columnName: getForeignTableColumnName(column.columnName),
|
||||
columnType: column.dataType,
|
||||
distantColumnName: column.columnName,
|
||||
isNullable: false,
|
||||
defaultValue: null,
|
||||
}) satisfies WorkspaceMigrationForeignColumnDefinition,
|
||||
),
|
||||
referencedTable,
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
import { computeColumnName } from 'src/engine/metadata-modules/field-metadata/utils/compute-column-name.util';
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import {
|
||||
WorkspaceMigrationTableAction,
|
||||
WorkspaceMigrationColumnActionType,
|
||||
WorkspaceMigrationColumnCreate,
|
||||
WorkspaceMigrationTableAction,
|
||||
WorkspaceMigrationTableActionType,
|
||||
} from 'src/engine/metadata-modules/workspace-migration/workspace-migration.entity';
|
||||
import { computeObjectTargetTable } from 'src/engine/utils/compute-object-target-table.util';
|
||||
@ -24,6 +24,7 @@ export const buildMigrationsToCreateRemoteTableRelations = (
|
||||
}),
|
||||
columnType: primaryKeyColumnType,
|
||||
isNullable: true,
|
||||
defaultValue: null,
|
||||
} satisfies WorkspaceMigrationColumnCreate,
|
||||
],
|
||||
}));
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
|
||||
import { getForeignTableColumnName as convertToForeignTableColumnName } from 'src/engine/metadata-modules/remote-server/remote-table/foreign-table/utils/get-foreign-table-column-name.util';
|
||||
import { DistantTables } from 'src/engine/metadata-modules/remote-server/remote-table/distant-table/types/distant-table';
|
||||
import { DistantTableUpdate } from 'src/engine/metadata-modules/remote-server/remote-table/dtos/remote-table.dto';
|
||||
import { getForeignTableColumnName as convertToForeignTableColumnName } from 'src/engine/metadata-modules/remote-server/remote-table/foreign-table/utils/get-foreign-table-column-name.util';
|
||||
import { RemoteTableEntity } from 'src/engine/metadata-modules/remote-server/remote-table/remote-table.entity';
|
||||
import { fetchTableColumns } from 'src/engine/metadata-modules/remote-server/remote-table/utils/fetch-table-columns.util';
|
||||
import { PostgresTableSchemaColumn } from 'src/engine/metadata-modules/remote-server/types/postgres-table-schema-column';
|
||||
import {
|
||||
WorkspaceMigrationColumnAction,
|
||||
WorkspaceMigrationColumnCreate,
|
||||
WorkspaceMigrationColumnActionType,
|
||||
WorkspaceMigrationColumnCreate,
|
||||
WorkspaceMigrationColumnDrop,
|
||||
} from 'src/engine/metadata-modules/workspace-migration/workspace-migration.entity';
|
||||
import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service';
|
||||
@ -33,6 +33,8 @@ export class RemoteTableSchemaUpdateService {
|
||||
action: WorkspaceMigrationColumnActionType.CREATE,
|
||||
columnName: columnAdded.name,
|
||||
columnType: columnAdded.type,
|
||||
isNullable: true,
|
||||
defaultValue: null,
|
||||
}));
|
||||
|
||||
const columnsDeletedUpdates: WorkspaceMigrationColumnDrop[] =
|
||||
|
||||
Reference in New Issue
Block a user