From cf510497d51c09ec01917ed526a4c470bb99a408 Mon Sep 17 00:00:00 2001 From: allardy Date: Wed, 17 Jul 2019 22:20:31 -0400 Subject: [PATCH] set version on create and also update bots when migrating --- src/bp/core/services/bot-service.ts | 3 ++- src/bp/core/services/migration/index.ts | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/bp/core/services/bot-service.ts b/src/bp/core/services/bot-service.ts index f6005f6e9c4..631c95860d0 100644 --- a/src/bp/core/services/bot-service.ts +++ b/src/bp/core/services/bot-service.ts @@ -430,7 +430,8 @@ export class BotService { const mergedConfigs = { ...DEFAULT_BOT_CONFIGS, ...templateConfig, - ...botConfig + ...botConfig, + version: process.BOTPRESS_VERSION } if (!mergedConfigs.imports.contentTypes) { diff --git a/src/bp/core/services/migration/index.ts b/src/bp/core/services/migration/index.ts index 8dd879c689d..6427e6a15a2 100644 --- a/src/bp/core/services/migration/index.ts +++ b/src/bp/core/services/migration/index.ts @@ -14,6 +14,7 @@ import path from 'path' import semver from 'semver' import { container } from '../../app.inversify' +import { GhostService } from '../ghost/service' const debug = DEBUG('migration') @@ -35,7 +36,8 @@ export class MigrationService { @inject(TYPES.Logger) private logger: sdk.Logger, @inject(TYPES.Database) private database: Database, - @inject(TYPES.ConfigProvider) private configProvider: ConfigProvider + @inject(TYPES.ConfigProvider) private configProvider: ConfigProvider, + @inject(TYPES.GhostService) private ghostService: GhostService ) { this.currentVersion = process.env.MIGRATION_TEST_VERSION || process.BOTPRESS_VERSION this.completedMigrationsDir = path.resolve(process.PROJECT_LOCATION, `data/migrations`) @@ -133,10 +135,19 @@ export class MigrationService { process.exit(1) } - await this.configProvider.mergeBotpressConfig({ version: this.currentVersion }) + await this.updateAllVersions() this.logger.info(`Migrations completed successfully! `) } + private async updateAllVersions() { + await this.configProvider.mergeBotpressConfig({ version: this.currentVersion }) + + const botIds = (await this.ghostService.bots().directoryListing('/', 'bot.config.json')).map(path.dirname) + for (const botId of botIds) { + await this.configProvider.mergeBotConfig(botId, { version: this.currentVersion }) + } + } + private displayMigrationStatus(configVersion: string, missingMigrations: MigrationFile[], logger: sdk.Logger) { const migrations = missingMigrations.map(x => this.loadedMigrations[x.filename].info)