Add workspaceId option on standard-id migration script

This commit is contained in:
Charles Bochet
2024-03-22 18:20:38 +01:00
parent 5665656b05
commit 1a763263c9

View File

@ -1,7 +1,7 @@
import { Logger } from '@nestjs/common';
import { InjectDataSource } from '@nestjs/typeorm';
import { Command, CommandRunner } from 'nest-commander';
import { Command, CommandRunner, Option } from 'nest-commander';
import { DataSource } from 'typeorm';
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
@ -12,6 +12,10 @@ import { computeStandardObject } from 'src/engine/workspace-manager/workspace-sy
import { StandardFieldFactory } from 'src/engine/workspace-manager/workspace-sync-metadata/factories/standard-field.factory';
import { CustomObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/custom-objects/custom.object-metadata';
interface RunCommandOptions {
workspaceId?: string;
}
@Command({
name: 'workspace:add-standard-id',
description: 'Add standard id to all metadata objects and fields',
@ -28,8 +32,9 @@ export class AddStandardIdCommand extends CommandRunner {
super();
}
async run(): Promise<void> {
async run(_passedParam: string[], options: RunCommandOptions): Promise<void> {
const queryRunner = this.metadataDataSource.createQueryRunner();
const workspaceId = options.workspaceId;
await queryRunner.connect();
await queryRunner.startTransaction();
@ -81,6 +86,7 @@ export class AddStandardIdCommand extends CommandRunner {
await objectMetadataRepository.find({
where: {
fields: { isCustom: false },
workspaceId: workspaceId,
},
relations: ['fields'],
});
@ -88,6 +94,7 @@ export class AddStandardIdCommand extends CommandRunner {
originalObjectMetadataCollection.filter(
(metadata) => metadata.isCustom,
);
const standardObjectMetadataMap = new Map(
standardObjectMetadataCollection.map((metadata) => [
metadata.nameSingular,
@ -152,4 +159,13 @@ export class AddStandardIdCommand extends CommandRunner {
await queryRunner.release();
}
}
@Option({
flags: '-w, --workspace-id [workspace_id]',
description: 'workspace id',
required: false,
})
parseWorkspaceId(value: string): string {
return value;
}
}