import { InjectRepository } from '@nestjs/typeorm'; import { Command } from 'nest-commander'; import { Repository } from 'typeorm'; import { ActiveWorkspacesCommandRunner } from 'src/database/commands/active-workspaces.command'; import { BaseCommandOptions } from 'src/database/commands/base.command'; import { RecordPositionBackfillCommand } from 'src/database/commands/upgrade-version/0-40/0-40-record-position-backfill.command'; import { Workspace } from 'src/engine/core-modules/workspace/workspace.entity'; import { SyncWorkspaceMetadataCommand } from 'src/engine/workspace-manager/workspace-sync-metadata/commands/sync-workspace-metadata.command'; @Command({ name: 'upgrade-0.40', description: 'Upgrade to 0.40', }) export class UpgradeTo0_40Command extends ActiveWorkspacesCommandRunner { constructor( @InjectRepository(Workspace, 'core') protected readonly workspaceRepository: Repository, private readonly recordPositionBackfillCommand: RecordPositionBackfillCommand, private readonly syncWorkspaceMetadataCommand: SyncWorkspaceMetadataCommand, ) { super(workspaceRepository); } async executeActiveWorkspacesCommand( passedParam: string[], options: BaseCommandOptions, workspaceIds: string[], ): Promise { await this.recordPositionBackfillCommand.executeActiveWorkspacesCommand( passedParam, options, workspaceIds, ); await this.syncWorkspaceMetadataCommand.executeActiveWorkspacesCommand( passedParam, { ...options, force: true, }, workspaceIds, ); } }