feat: sync command missing ability to rename standard object (#4819)
We've introduced in PR #4373 standard ids to be able to rename standard fields and objects. Fields part was working properly, but objects part was not yet implemented. This PR is adding the missing parts to make it work.
This commit is contained in:
@ -18,6 +18,7 @@ import {
|
||||
WorkspaceMigrationColumnCreateRelation,
|
||||
WorkspaceMigrationColumnAlter,
|
||||
WorkspaceMigrationColumnDropRelation,
|
||||
WorkspaceMigrationTableActionType,
|
||||
WorkspaceMigrationForeignTable,
|
||||
} from 'src/engine/metadata-modules/workspace-migration/workspace-migration.entity';
|
||||
import { WorkspaceCacheVersionService } from 'src/engine/metadata-modules/workspace-cache-version/workspace-cache-version.service';
|
||||
@ -118,18 +119,30 @@ export class WorkspaceMigrationRunnerService {
|
||||
tableMigration: WorkspaceMigrationTableAction,
|
||||
) {
|
||||
switch (tableMigration.action) {
|
||||
case 'create':
|
||||
case WorkspaceMigrationTableActionType.CREATE:
|
||||
await this.createTable(queryRunner, schemaName, tableMigration.name);
|
||||
break;
|
||||
case 'alter':
|
||||
await this.handleColumnChanges(
|
||||
queryRunner,
|
||||
schemaName,
|
||||
tableMigration.name,
|
||||
tableMigration?.columns,
|
||||
);
|
||||
case WorkspaceMigrationTableActionType.ALTER: {
|
||||
if (tableMigration.newName) {
|
||||
await this.renameTable(
|
||||
queryRunner,
|
||||
schemaName,
|
||||
tableMigration.name,
|
||||
tableMigration.newName,
|
||||
);
|
||||
}
|
||||
|
||||
if (tableMigration.columns && tableMigration.columns.length > 0) {
|
||||
await this.handleColumnChanges(
|
||||
queryRunner,
|
||||
schemaName,
|
||||
tableMigration.newName ?? tableMigration.name,
|
||||
tableMigration.columns,
|
||||
);
|
||||
}
|
||||
break;
|
||||
case 'drop':
|
||||
}
|
||||
case WorkspaceMigrationTableActionType.DROP:
|
||||
await queryRunner.dropTable(`${schemaName}.${tableMigration.name}`);
|
||||
break;
|
||||
case 'create_foreign_table':
|
||||
@ -179,6 +192,25 @@ export class WorkspaceMigrationRunnerService {
|
||||
`);
|
||||
}
|
||||
|
||||
/**
|
||||
* Rename a table
|
||||
* @param queryRunner QueryRunner
|
||||
* @param schemaName string
|
||||
* @param oldTableName string
|
||||
* @param newTableName string
|
||||
*/
|
||||
private async renameTable(
|
||||
queryRunner: QueryRunner,
|
||||
schemaName: string,
|
||||
oldTableName: string,
|
||||
newTableName: string,
|
||||
) {
|
||||
await queryRunner.renameTable(
|
||||
`${schemaName}.${oldTableName}`,
|
||||
newTableName,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles column changes for a given migration
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user