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:
Jérémy M
2024-04-09 10:20:34 +02:00
committed by GitHub
parent b1242bb850
commit 35717fce8b
16 changed files with 322 additions and 148 deletions
@@ -18,6 +18,7 @@ import {
WorkspaceMigrationColumnActionType,
WorkspaceMigrationColumnDrop,
WorkspaceMigrationTableAction,
WorkspaceMigrationTableActionType,
} from 'src/engine/metadata-modules/workspace-migration/workspace-migration.entity';
import { TypeORMService } from 'src/database/typeorm/typeorm.service';
import { DataSourceService } from 'src/engine/metadata-modules/data-source/data-source.service';
@@ -152,7 +153,7 @@ export class FieldMetadataService extends TypeOrmQueryService<FieldMetadataEntit
[
{
name: computeObjectTargetTable(objectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: this.workspaceMigrationFactory.createColumnActions(
WorkspaceMigrationColumnActionType.CREATE,
createdFieldMetadata,
@@ -328,7 +329,7 @@ export class FieldMetadataService extends TypeOrmQueryService<FieldMetadataEntit
[
{
name: computeObjectTargetTable(objectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: this.workspaceMigrationFactory.createColumnActions(
WorkspaceMigrationColumnActionType.ALTER,
existingFieldMetadata,
@@ -399,7 +400,7 @@ export class FieldMetadataService extends TypeOrmQueryService<FieldMetadataEntit
[
{
name: computeObjectTargetTable(objectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.DROP,
@@ -16,6 +16,7 @@ import { WorkspaceMigrationRunnerService } from 'src/engine/workspace-manager/wo
import {
WorkspaceMigrationColumnActionType,
WorkspaceMigrationColumnDrop,
WorkspaceMigrationTableActionType,
} from 'src/engine/metadata-modules/workspace-migration/workspace-migration.entity';
import {
FieldMetadataEntity,
@@ -177,7 +178,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
relationToDelete.toObjectName,
relationToDelete.toObjectMetadataIsCustom,
),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.DROP,
@@ -203,7 +204,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
[
{
name: computeObjectTargetTable(objectMetadata),
action: 'drop',
action: WorkspaceMigrationTableActionType.DROP,
},
],
);
@@ -5,6 +5,7 @@ import {
WorkspaceMigrationTableAction,
WorkspaceMigrationColumnActionType,
WorkspaceMigrationColumnCreate,
WorkspaceMigrationTableActionType,
} from 'src/engine/metadata-modules/workspace-migration/workspace-migration.entity';
import { computeObjectTargetTable } from 'src/engine/utils/compute-object-target-table.util';
@@ -17,12 +18,12 @@ export const buildWorkspaceMigrationsForCustomObject = (
): WorkspaceMigrationTableAction[] => [
{
name: computeObjectTargetTable(createdObjectMetadata),
action: 'create',
action: WorkspaceMigrationTableActionType.CREATE,
} satisfies WorkspaceMigrationTableAction,
// Add activity target relation
{
name: computeObjectTargetTable(activityTargetObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE,
@@ -36,7 +37,7 @@ export const buildWorkspaceMigrationsForCustomObject = (
},
{
name: computeObjectTargetTable(activityTargetObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE_FOREIGN_KEY,
@@ -52,7 +53,7 @@ export const buildWorkspaceMigrationsForCustomObject = (
// Add attachment relation
{
name: computeObjectTargetTable(attachmentObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE,
@@ -66,7 +67,7 @@ export const buildWorkspaceMigrationsForCustomObject = (
},
{
name: computeObjectTargetTable(attachmentObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE_FOREIGN_KEY,
@@ -82,7 +83,7 @@ export const buildWorkspaceMigrationsForCustomObject = (
// Add event relation
{
name: computeObjectTargetTable(eventObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE,
@@ -96,7 +97,7 @@ export const buildWorkspaceMigrationsForCustomObject = (
},
{
name: computeObjectTargetTable(eventObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE_FOREIGN_KEY,
@@ -112,7 +113,7 @@ export const buildWorkspaceMigrationsForCustomObject = (
// Add favorite relation
{
name: computeObjectTargetTable(favoriteObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE,
@@ -126,7 +127,7 @@ export const buildWorkspaceMigrationsForCustomObject = (
},
{
name: computeObjectTargetTable(favoriteObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE_FOREIGN_KEY,
@@ -141,7 +142,7 @@ export const buildWorkspaceMigrationsForCustomObject = (
},
{
name: computeObjectTargetTable(createdObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE,
@@ -154,7 +155,7 @@ export const buildWorkspaceMigrationsForCustomObject = (
// This is temporary until we implement mainIdentifier
{
name: computeObjectTargetTable(createdObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE,
@@ -6,6 +6,7 @@ import {
WorkspaceMigrationTableAction,
WorkspaceMigrationColumnActionType,
WorkspaceMigrationColumnCreate,
WorkspaceMigrationTableActionType,
} from 'src/engine/metadata-modules/workspace-migration/workspace-migration.entity';
import { computeObjectTargetTable } from 'src/engine/utils/compute-object-target-table.util';
@@ -61,7 +62,7 @@ export const buildWorkspaceMigrationsForRemoteObject = async (
return [
{
name: computeObjectTargetTable(activityTargetObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE,
@@ -75,7 +76,7 @@ export const buildWorkspaceMigrationsForRemoteObject = async (
},
{
name: computeObjectTargetTable(activityTargetObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE,
@@ -88,7 +89,7 @@ export const buildWorkspaceMigrationsForRemoteObject = async (
},
{
name: computeObjectTargetTable(activityTargetObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE_COMMENT,
@@ -104,7 +105,7 @@ export const buildWorkspaceMigrationsForRemoteObject = async (
// Add attachment relation
{
name: computeObjectTargetTable(attachmentObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE,
@@ -118,7 +119,7 @@ export const buildWorkspaceMigrationsForRemoteObject = async (
},
{
name: computeObjectTargetTable(attachmentObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE,
@@ -131,7 +132,7 @@ export const buildWorkspaceMigrationsForRemoteObject = async (
},
{
name: computeObjectTargetTable(attachmentObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE_COMMENT,
@@ -147,7 +148,7 @@ export const buildWorkspaceMigrationsForRemoteObject = async (
// Add event relation
{
name: computeObjectTargetTable(eventObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE,
@@ -161,7 +162,7 @@ export const buildWorkspaceMigrationsForRemoteObject = async (
},
{
name: computeObjectTargetTable(eventObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE,
@@ -174,7 +175,7 @@ export const buildWorkspaceMigrationsForRemoteObject = async (
},
{
name: computeObjectTargetTable(eventObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE_COMMENT,
@@ -190,7 +191,7 @@ export const buildWorkspaceMigrationsForRemoteObject = async (
// Add favorite relation
{
name: computeObjectTargetTable(favoriteObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE,
@@ -204,7 +205,7 @@ export const buildWorkspaceMigrationsForRemoteObject = async (
},
{
name: computeObjectTargetTable(favoriteObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE,
@@ -217,7 +218,7 @@ export const buildWorkspaceMigrationsForRemoteObject = async (
},
{
name: computeObjectTargetTable(favoriteObjectMetadata),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE_COMMENT,
@@ -17,7 +17,10 @@ import { CreateRelationInput } from 'src/engine/metadata-modules/relation-metada
import { WorkspaceMigrationRunnerService } from 'src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.service';
import { WorkspaceMigrationService } from 'src/engine/metadata-modules/workspace-migration/workspace-migration.service';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { WorkspaceMigrationColumnActionType } from 'src/engine/metadata-modules/workspace-migration/workspace-migration.entity';
import {
WorkspaceMigrationColumnActionType,
WorkspaceMigrationTableActionType,
} from 'src/engine/metadata-modules/workspace-migration/workspace-migration.entity';
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
import { computeObjectTargetTable } from 'src/engine/utils/compute-object-target-table.util';
import { generateMigrationName } from 'src/engine/metadata-modules/workspace-migration/utils/generate-migration-name.util';
@@ -171,7 +174,7 @@ export class RelationMetadataService extends TypeOrmQueryService<RelationMetadat
name: computeObjectTargetTable(
objectMetadataMap[relationMetadataInput.toObjectMetadataId],
),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE,
@@ -186,7 +189,7 @@ export class RelationMetadataService extends TypeOrmQueryService<RelationMetadat
name: computeObjectTargetTable(
objectMetadataMap[relationMetadataInput.toObjectMetadataId],
),
action: 'alter',
action: WorkspaceMigrationTableActionType.ALTER,
columns: [
{
action: WorkspaceMigrationColumnActionType.CREATE_FOREIGN_KEY,
@@ -30,6 +30,7 @@ import { generateMigrationName } from 'src/engine/metadata-modules/workspace-mig
import {
WorkspaceMigrationColumnDefinition,
WorkspaceMigrationForeignTable,
WorkspaceMigrationTableActionType,
} from 'src/engine/metadata-modules/workspace-migration/workspace-migration.entity';
import { RemoteTableColumn } from 'src/engine/metadata-modules/remote-server/remote-table/types/remote-table-column';
import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service';
@@ -165,7 +166,7 @@ export class RemoteTableService {
[
{
name: remoteTableName,
action: 'create_foreign_table',
action: WorkspaceMigrationTableActionType.CREATE_FOREIGN_TABLE,
foreignTable: {
columns: remoteTableColumns.map(
(column) =>
@@ -252,7 +253,7 @@ export class RemoteTableService {
[
{
name: remoteTableName,
action: 'drop_foreign_table',
action: WorkspaceMigrationTableActionType.DROP_FOREIGN_TABLE,
},
],
);
@@ -80,14 +80,21 @@ export type WorkspaceMigrationColumnAction = {
| WorkspaceMigrationCreateComment
);
/**
* Enum values are lowercase to avoid issues with already existing enum values
*/
export enum WorkspaceMigrationTableActionType {
CREATE = 'create',
ALTER = 'alter',
DROP = 'drop',
CREATE_FOREIGN_TABLE = 'create_foreign_table',
DROP_FOREIGN_TABLE = 'drop_foreign_table'
}
export type WorkspaceMigrationTableAction = {
name: string;
action:
| 'create'
| 'alter'
| 'drop'
| 'create_foreign_table'
| 'drop_foreign_table';
newName?: string;
action: WorkspaceMigrationTableActionType;
columns?: WorkspaceMigrationColumnAction[];
foreignTable?: WorkspaceMigrationForeignTable;
};