Refactor upgrade commands (#10592)
Simplifying a lot the upgrade system.
New way to upgrade:
`yarn command:prod upgrade`
New way to write upgrade commands (all wrapping is done for you)
```
override async runOnWorkspace({
index,
total,
workspaceId,
options,
}: RunOnWorkspaceArgs): Promise<void> {}
```
Also cleaning CommandModule imports to make it lighter
This commit is contained in:
@ -1 +0,0 @@
|
||||
export const dataSeedDemoWorkspaceCronPattern = '0 22 * * *'; // Every day at 10pm
|
||||
@ -1,32 +0,0 @@
|
||||
import { Command, CommandRunner } from 'nest-commander';
|
||||
|
||||
import { dataSeedDemoWorkspaceCronPattern } from 'src/database/commands/data-seed-demo-workspace/crons/data-seed-demo-workspace-cron-pattern';
|
||||
import { DataSeedDemoWorkspaceJob } from 'src/database/commands/data-seed-demo-workspace/jobs/data-seed-demo-workspace.job';
|
||||
import { InjectMessageQueue } from 'src/engine/core-modules/message-queue/decorators/message-queue.decorator';
|
||||
import { MessageQueue } from 'src/engine/core-modules/message-queue/message-queue.constants';
|
||||
import { MessageQueueService } from 'src/engine/core-modules/message-queue/services/message-queue.service';
|
||||
|
||||
@Command({
|
||||
name: 'workspace-seed-demo:cron:start',
|
||||
description: 'Start cron to seed workspace with demo data.',
|
||||
})
|
||||
export class StartDataSeedDemoWorkspaceCronCommand extends CommandRunner {
|
||||
constructor(
|
||||
@InjectMessageQueue(MessageQueue.cronQueue)
|
||||
private readonly messageQueueService: MessageQueueService,
|
||||
) {
|
||||
super();
|
||||
}
|
||||
|
||||
async run(): Promise<void> {
|
||||
await this.messageQueueService.addCron<undefined>({
|
||||
jobName: DataSeedDemoWorkspaceJob.name,
|
||||
data: undefined,
|
||||
options: {
|
||||
repeat: {
|
||||
pattern: dataSeedDemoWorkspaceCronPattern,
|
||||
},
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -1,25 +0,0 @@
|
||||
import { Command, CommandRunner } from 'nest-commander';
|
||||
|
||||
import { DataSeedDemoWorkspaceJob } from 'src/database/commands/data-seed-demo-workspace/jobs/data-seed-demo-workspace.job';
|
||||
import { InjectMessageQueue } from 'src/engine/core-modules/message-queue/decorators/message-queue.decorator';
|
||||
import { MessageQueue } from 'src/engine/core-modules/message-queue/message-queue.constants';
|
||||
import { MessageQueueService } from 'src/engine/core-modules/message-queue/services/message-queue.service';
|
||||
|
||||
@Command({
|
||||
name: 'workspace-seed-demo:cron:stop',
|
||||
description: 'Stop cron to seed workspace with demo data.',
|
||||
})
|
||||
export class StopDataSeedDemoWorkspaceCronCommand extends CommandRunner {
|
||||
constructor(
|
||||
@InjectMessageQueue(MessageQueue.cronQueue)
|
||||
private readonly messageQueueService: MessageQueueService,
|
||||
) {
|
||||
super();
|
||||
}
|
||||
|
||||
async run(): Promise<void> {
|
||||
await this.messageQueueService.removeCron({
|
||||
jobName: DataSeedDemoWorkspaceJob.name,
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -1,19 +0,0 @@
|
||||
import { Command, CommandRunner } from 'nest-commander';
|
||||
|
||||
import { DataSeedDemoWorkspaceService } from 'src/database/commands/data-seed-demo-workspace/services/data-seed-demo-workspace.service';
|
||||
|
||||
@Command({
|
||||
name: 'workspace:seed:demo',
|
||||
description: 'Seed workspace with demo data. Use in development only.',
|
||||
})
|
||||
export class DataSeedDemoWorkspaceCommand extends CommandRunner {
|
||||
constructor(
|
||||
private readonly dataSeedDemoWorkspaceService: DataSeedDemoWorkspaceService,
|
||||
) {
|
||||
super();
|
||||
}
|
||||
|
||||
async run(): Promise<void> {
|
||||
await this.dataSeedDemoWorkspaceService.seedDemo();
|
||||
}
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
import { DataSeedDemoWorkspaceService } from 'src/database/commands/data-seed-demo-workspace/services/data-seed-demo-workspace.service';
|
||||
import { Processor } from 'src/engine/core-modules/message-queue/decorators/processor.decorator';
|
||||
import { MessageQueue } from 'src/engine/core-modules/message-queue/message-queue.constants';
|
||||
import { Process } from 'src/engine/core-modules/message-queue/decorators/process.decorator';
|
||||
|
||||
@Processor(MessageQueue.cronQueue)
|
||||
export class DataSeedDemoWorkspaceJob {
|
||||
constructor(
|
||||
private readonly dataSeedDemoWorkspaceService: DataSeedDemoWorkspaceService,
|
||||
) {}
|
||||
|
||||
@Process(DataSeedDemoWorkspaceJob.name)
|
||||
async handle(): Promise<void> {
|
||||
await this.dataSeedDemoWorkspaceService.seedDemo();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user