5efc2f00b9
* Sync Metadata generates migrations * add execute migrations * fix relations + add isActive on creation * fix composite fields migration * remove dependency * use new metadata setup for seed-dev * fix rebase * remove unused code * fix viewField dev seeds * fix isSystem
47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
import { Command, CommandRunner, Option } from 'nest-commander';
|
|
|
|
import { DataSourceService } from 'src/metadata/data-source/data-source.service';
|
|
import { WorkspaceSyncMetadataService } from 'src/workspace/workspace-sync-metadata/workspace-sync.metadata.service';
|
|
|
|
// TODO: implement dry-run
|
|
interface RunWorkspaceMigrationsOptions {
|
|
workspaceId: string;
|
|
}
|
|
|
|
@Command({
|
|
name: 'workspace:sync-metadata',
|
|
description: 'Sync metadata',
|
|
})
|
|
export class SyncWorkspaceMetadataCommand extends CommandRunner {
|
|
constructor(
|
|
private readonly workspaceSyncMetadataService: WorkspaceSyncMetadataService,
|
|
private readonly dataSourceService: DataSourceService,
|
|
) {
|
|
super();
|
|
}
|
|
|
|
async run(
|
|
_passedParam: string[],
|
|
options: RunWorkspaceMigrationsOptions,
|
|
): Promise<void> {
|
|
// TODO: run in a dedicated job + run queries in a transaction.
|
|
const dataSourceMetadata =
|
|
await this.dataSourceService.getLastDataSourceMetadataFromWorkspaceIdOrFail(
|
|
options.workspaceId,
|
|
);
|
|
await this.workspaceSyncMetadataService.syncStandardObjectsAndFieldsMetadata(
|
|
dataSourceMetadata.id,
|
|
options.workspaceId,
|
|
);
|
|
}
|
|
|
|
@Option({
|
|
flags: '-w, --workspace-id [workspace_id]',
|
|
description: 'workspace id',
|
|
required: true,
|
|
})
|
|
parseWorkspaceId(value: string): string {
|
|
return value;
|
|
}
|
|
}
|