Timestamp column migration in all workspace schema tables (#13679)

fixes https://github.com/twentyhq/private-issues/issues/288

Test with : 
`npx nx run twenty-server:command
upgrade:1-3:update-timestamp-column-type-in-workspace-schema`
This commit is contained in:
Etienne
2025-08-06 22:12:52 +02:00
committed by GitHub
parent e857860e21
commit 723f1016a6
9 changed files with 80 additions and 42 deletions
@@ -179,6 +179,10 @@ export class WorkspaceMigrationColumnService {
column: {
name: createColumnMigration.columnName,
type: createColumnMigration.columnType,
precision:
createColumnMigration.columnType === 'timestamptz'
? 3
: undefined,
isArray: createColumnMigration.isArray ?? false,
isNullable: createColumnMigration.isNullable,
default: createColumnMigration.defaultValue,
@@ -15,13 +15,16 @@ export class WorkspaceMigrationTypeService {
migrationColumn: WorkspaceMigrationColumnAlter,
) {
const columnDefinition = migrationColumn.alteredColumnDefinition;
const computedColumnType = ` ${columnDefinition.columnType}${
columnDefinition.columnType === 'timestamptz' ? `(3)` : ''
}`;
// Update the column type
// If casting is not possible, the query will fail
await queryRunner.query(`
ALTER TABLE "${schemaName}"."${tableName}"
ALTER COLUMN "${columnDefinition.columnName}" TYPE ${columnDefinition.columnType}
USING "${columnDefinition.columnName}"::${columnDefinition.columnType}
ALTER COLUMN "${columnDefinition.columnName}" TYPE ${computedColumnType}
USING "${columnDefinition.columnName}"::${computedColumnType}
`);
// Update the column default value
@@ -19,6 +19,7 @@ export const typeormBuildCreateColumnSql = ({
| 'default'
| 'generatedType'
| 'asExpression'
| 'precision'
>;
}): string => {
let columnSql = '"' + column.name + '"';
@@ -30,6 +31,7 @@ export const typeormBuildCreateColumnSql = ({
})}"`;
} else {
columnSql += ' ' + column.type;
if (column.precision) columnSql += `(${column.precision})`;
}
if (column.isArray) columnSql += '[]';