diff --git a/packages/backend-common/src/database/DatabaseManager.test.ts b/packages/backend-common/src/database/DatabaseManager.test.ts index 2905775494..4a44feec4a 100644 --- a/packages/backend-common/src/database/DatabaseManager.test.ts +++ b/packages/backend-common/src/database/DatabaseManager.test.ts @@ -63,7 +63,7 @@ describe('DatabaseManager', () => { const database = DatabaseManager.fromConfig(config); const client = database.forPlugin('test'); - expect(client.migrations?.apply).toBe(true); + expect(client.migrations.apply).toBe(true); }); it('handles migrations options', () => { @@ -73,7 +73,7 @@ describe('DatabaseManager', () => { }); const client = database.forPlugin('test'); - expect(client.migrations?.apply).toBe(false); + expect(client.migrations.apply).toBe(false); }); }); diff --git a/packages/backend-common/src/database/DatabaseManager.ts b/packages/backend-common/src/database/DatabaseManager.ts index 2c76c0f163..e564f2e0e6 100644 --- a/packages/backend-common/src/database/DatabaseManager.ts +++ b/packages/backend-common/src/database/DatabaseManager.ts @@ -37,7 +37,7 @@ function pluginPath(pluginId: string): string { } type Options = { - migrations?: PluginDatabaseManager['migrations']; + migrations: PluginDatabaseManager['migrations']; }; /** @public */ @@ -78,15 +78,15 @@ export class DatabaseManager { */ forPlugin(pluginId: string): PluginDatabaseManager { const _this = this; - const defaultMigrationOptions = { - apply: true, - }; return { getClient(): Promise { return _this.getDatabase(pluginId); }, - migrations: _this.options?.migrations ?? defaultMigrationOptions, + migrations: { + apply: true, + ..._this.options?.migrations, + }, }; } diff --git a/packages/backend-common/src/database/types.ts b/packages/backend-common/src/database/types.ts index 3c5bbf19bb..4cfc86e240 100644 --- a/packages/backend-common/src/database/types.ts +++ b/packages/backend-common/src/database/types.ts @@ -32,9 +32,9 @@ export interface PluginDatabaseManager { getClient(): Promise; /** - * This optional property is used to control the behavior of database migrations. + * This property is used to control the behavior of database migrations. */ - migrations?: { + migrations: { /** * apply can be used to determine if database migrations * should be performed. diff --git a/packages/backend-tasks/src/tasks/TaskScheduler.test.ts b/packages/backend-tasks/src/tasks/TaskScheduler.test.ts index ce8e797503..6c9a6989c7 100644 --- a/packages/backend-tasks/src/tasks/TaskScheduler.test.ts +++ b/packages/backend-tasks/src/tasks/TaskScheduler.test.ts @@ -33,6 +33,7 @@ describe('TaskScheduler', () => { const databaseManager: Partial = { forPlugin: () => ({ getClient: async () => knex, + migrations: { apply: true }, }), }; return databaseManager as DatabaseManager; diff --git a/plugins/auth-backend/src/service/standaloneServer.ts b/plugins/auth-backend/src/service/standaloneServer.ts index 15ffe1d053..9009af4aa6 100644 --- a/plugins/auth-backend/src/service/standaloneServer.ts +++ b/plugins/auth-backend/src/service/standaloneServer.ts @@ -56,6 +56,7 @@ export async function startStandaloneServer( async getClient() { return database; }, + migrations: { apply: true }, }, discovery, }); diff --git a/plugins/bazaar-backend/src/service/standaloneServer.ts b/plugins/bazaar-backend/src/service/standaloneServer.ts index b229f5bcf8..4ef46b7f66 100644 --- a/plugins/bazaar-backend/src/service/standaloneServer.ts +++ b/plugins/bazaar-backend/src/service/standaloneServer.ts @@ -52,7 +52,7 @@ export async function startStandaloneServer( const router = await createRouter({ logger, - database: { getClient: async () => db }, + database: { getClient: async () => db, migrations: { apply: true } }, config: config, }); diff --git a/plugins/catalog-backend/src/legacy/service/CatalogBuilder.test.ts b/plugins/catalog-backend/src/legacy/service/CatalogBuilder.test.ts index 926aa67635..3ba9340716 100644 --- a/plugins/catalog-backend/src/legacy/service/CatalogBuilder.test.ts +++ b/plugins/catalog-backend/src/legacy/service/CatalogBuilder.test.ts @@ -49,7 +49,7 @@ describe('CatalogBuilder', () => { }; const env: CatalogEnvironment = { logger: getVoidLogger(), - database: { getClient: async () => db }, + database: { getClient: async () => db, migrations: { apply: true } }, config: new ConfigReader({}), reader, }; diff --git a/plugins/catalog-backend/src/service/NextCatalogBuilder.ts b/plugins/catalog-backend/src/service/NextCatalogBuilder.ts index 712ab0ae44..382cac362e 100644 --- a/plugins/catalog-backend/src/service/NextCatalogBuilder.ts +++ b/plugins/catalog-backend/src/service/NextCatalogBuilder.ts @@ -336,7 +336,7 @@ export class NextCatalogBuilder { const parser = this.parser || defaultEntityDataParser; const dbClient = await database.getClient(); - if (database.migrations?.apply) { + if (database.migrations.apply) { logger.info('Performing database migration'); await applyDatabaseMigrations(dbClient); } diff --git a/plugins/catalog-backend/src/service/standaloneServer.ts b/plugins/catalog-backend/src/service/standaloneServer.ts index 7aae3cd47c..66154b0ddc 100644 --- a/plugins/catalog-backend/src/service/standaloneServer.ts +++ b/plugins/catalog-backend/src/service/standaloneServer.ts @@ -46,7 +46,7 @@ export async function startStandaloneServer( logger.debug('Creating application...'); const builder = new CatalogBuilder({ logger, - database: { getClient: () => db }, + database: { getClient: () => db, migrations: { apply: true } }, config, reader, }); diff --git a/plugins/code-coverage-backend/src/service/standaloneServer.ts b/plugins/code-coverage-backend/src/service/standaloneServer.ts index 291f78ffc5..ca913a2a67 100644 --- a/plugins/code-coverage-backend/src/service/standaloneServer.ts +++ b/plugins/code-coverage-backend/src/service/standaloneServer.ts @@ -54,7 +54,7 @@ export async function startStandaloneServer( logger.debug('Starting application server...'); const router = await createRouter({ - database: { getClient: async () => db }, + database: { getClient: async () => db, migrations: { apply: true } }, config, discovery: SingleHostDiscovery.fromConfig(config), urlReader: UrlReaders.default({ logger, config }), diff --git a/plugins/tech-insights-backend/src/service/router.test.ts b/plugins/tech-insights-backend/src/service/router.test.ts index 0b7d3b7c45..b435136d4d 100644 --- a/plugins/tech-insights-backend/src/service/router.test.ts +++ b/plugins/tech-insights-backend/src/service/router.test.ts @@ -53,6 +53,7 @@ describe('Tech Insights router tests', () => { }, }) as unknown as Promise; }, + migrations: { apply: true }, }, logger: getVoidLogger(), factRetrievers: [],