From dac55f3cc76482c58ac61b994483a9397f0fef26 Mon Sep 17 00:00:00 2001 From: Marcus Eide Date: Tue, 7 Dec 2021 12:44:16 +0100 Subject: [PATCH] Make optional Signed-off-by: Marcus Eide --- packages/backend-common/api-report.md | 8 ++++---- .../src/database/DatabaseManager.test.ts | 6 +++--- .../backend-common/src/database/DatabaseManager.ts | 4 ++-- packages/backend-common/src/database/types.ts | 11 ++++------- .../backend-tasks/src/tasks/TaskScheduler.test.ts | 1 - plugins/auth-backend/src/service/standaloneServer.ts | 1 - .../bazaar-backend/src/service/standaloneServer.ts | 2 +- .../src/legacy/service/CatalogBuilder.test.ts | 2 +- .../catalog-backend/src/service/NextCatalogBuilder.ts | 2 +- .../catalog-backend/src/service/standaloneServer.ts | 2 +- .../src/service/standaloneServer.ts | 2 +- .../tech-insights-backend/src/service/router.test.ts | 1 - 12 files changed, 18 insertions(+), 24 deletions(-) diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index d6edfb0ce4..e623f656ab 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -183,7 +183,7 @@ export class DatabaseManager { // @public export type DatabaseManagerOptions = { - migrations: PluginDatabaseManager['migrations']; + migrations?: PluginDatabaseManager['migrations']; }; // @public (undocumented) @@ -403,8 +403,8 @@ export type PluginCacheManager = { // @public export interface PluginDatabaseManager { getClient(): Promise; - migrations: { - apply: boolean; + migrations?: { + skip?: boolean; }; } @@ -656,5 +656,5 @@ export function useHotMemoize(_module: NodeModule, valueFactory: () => T): T; // Warnings were encountered during analysis: // -// src/database/types.d.ts:26:12 - (tsdoc-undefined-tag) The TSDoc tag "@default" is not defined in this configuration +// src/database/types.d.ts:23:12 - (tsdoc-undefined-tag) The TSDoc tag "@default" is not defined in this configuration ``` diff --git a/packages/backend-common/src/database/DatabaseManager.test.ts b/packages/backend-common/src/database/DatabaseManager.test.ts index 4a44feec4a..4931a52f35 100644 --- a/packages/backend-common/src/database/DatabaseManager.test.ts +++ b/packages/backend-common/src/database/DatabaseManager.test.ts @@ -63,17 +63,17 @@ describe('DatabaseManager', () => { const database = DatabaseManager.fromConfig(config); const client = database.forPlugin('test'); - expect(client.migrations.apply).toBe(true); + expect(client.migrations?.skip).toBe(false); }); it('handles migrations options', () => { const config = new ConfigReader(backendConfig); const database = DatabaseManager.fromConfig(config, { - migrations: { apply: false }, + migrations: { skip: true }, }); const client = database.forPlugin('test'); - expect(client.migrations.apply).toBe(false); + expect(client.migrations?.skip).toBe(true); }); }); diff --git a/packages/backend-common/src/database/DatabaseManager.ts b/packages/backend-common/src/database/DatabaseManager.ts index befdd51218..ee3e8b1a89 100644 --- a/packages/backend-common/src/database/DatabaseManager.ts +++ b/packages/backend-common/src/database/DatabaseManager.ts @@ -42,7 +42,7 @@ function pluginPath(pluginId: string): string { * @public */ export type DatabaseManagerOptions = { - migrations: PluginDatabaseManager['migrations']; + migrations?: PluginDatabaseManager['migrations']; }; /** @public */ @@ -92,7 +92,7 @@ export class DatabaseManager { return _this.getDatabase(pluginId); }, migrations: { - apply: true, + skip: false, ..._this.options?.migrations, }, }; diff --git a/packages/backend-common/src/database/types.ts b/packages/backend-common/src/database/types.ts index 4cfc86e240..344f1088b8 100644 --- a/packages/backend-common/src/database/types.ts +++ b/packages/backend-common/src/database/types.ts @@ -34,16 +34,13 @@ export interface PluginDatabaseManager { /** * 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. + * skip database migrations. Useful if connecting to a read-only database. * - * Useful if connecting to a read-only database. - * - * @default true + * @default false */ - apply: boolean; + skip?: boolean; }; } diff --git a/packages/backend-tasks/src/tasks/TaskScheduler.test.ts b/packages/backend-tasks/src/tasks/TaskScheduler.test.ts index 6c9a6989c7..ce8e797503 100644 --- a/packages/backend-tasks/src/tasks/TaskScheduler.test.ts +++ b/packages/backend-tasks/src/tasks/TaskScheduler.test.ts @@ -33,7 +33,6 @@ 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 9009af4aa6..15ffe1d053 100644 --- a/plugins/auth-backend/src/service/standaloneServer.ts +++ b/plugins/auth-backend/src/service/standaloneServer.ts @@ -56,7 +56,6 @@ 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 4ef46b7f66..b229f5bcf8 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, migrations: { apply: true } }, + database: { getClient: async () => db }, 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 3ba9340716..926aa67635 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, migrations: { apply: true } }, + database: { getClient: async () => db }, config: new ConfigReader({}), reader, }; diff --git a/plugins/catalog-backend/src/service/NextCatalogBuilder.ts b/plugins/catalog-backend/src/service/NextCatalogBuilder.ts index 382cac362e..1618ef8d7b 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?.skip) { 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 66154b0ddc..7aae3cd47c 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, migrations: { apply: true } }, + database: { getClient: () => db }, config, reader, }); diff --git a/plugins/code-coverage-backend/src/service/standaloneServer.ts b/plugins/code-coverage-backend/src/service/standaloneServer.ts index ca913a2a67..291f78ffc5 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, migrations: { apply: true } }, + database: { getClient: async () => db }, 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 b435136d4d..0b7d3b7c45 100644 --- a/plugins/tech-insights-backend/src/service/router.test.ts +++ b/plugins/tech-insights-backend/src/service/router.test.ts @@ -53,7 +53,6 @@ describe('Tech Insights router tests', () => { }, }) as unknown as Promise; }, - migrations: { apply: true }, }, logger: getVoidLogger(), factRetrievers: [],