diff --git a/src/services/storage/db.ts b/src/services/storage/db.ts index 8f5722f0..7fa86a94 100644 --- a/src/services/storage/db.ts +++ b/src/services/storage/db.ts @@ -68,4 +68,17 @@ export default async (settings: DbSettings, migrations: Function[]): Promise<{ s return { source, executedMigrations } } return { source, executedMigrations: [] } +} + +export const runFakeMigration = async (databaseFile: string, migrations: Function[]) => { + const source = await new DataSource({ + type: "sqlite", + database: databaseFile, + // logging: true, + entities: [User, UserReceivingInvoice, UserReceivingAddress, AddressReceivingTransaction, UserInvoicePayment, UserTransactionPayment, + UserBasicAuth, UserEphemeralKey, Product, UserToUserPayment, Application, ApplicationUser, UserToUserPayment], + //synchronize: true, + migrations + }).initialize() + return source.runMigrations({ fake: true }) } \ No newline at end of file diff --git a/src/services/storage/migrations/runner.ts b/src/services/storage/migrations/runner.ts index cc35c702..3c81aa2f 100644 --- a/src/services/storage/migrations/runner.ts +++ b/src/services/storage/migrations/runner.ts @@ -1,38 +1,21 @@ import { PubLogger } from '../../helpers/logger.js' -import { DbSettings } from '../db.js' +import { DbSettings, runFakeMigration } from '../db.js' import Storage, { StorageSettings } from '../index.js' import { Initial1703170309875 } from './1703170309875-initial.js' import { LndMetrics1703170330183 } from './1703170330183-lnd_metrics.js' import { ChannelRouting1709316653538 } from './1709316653538-channel_routing.js' -const allMigrations = [LndMetrics1703170330183, ChannelRouting1709316653538] +const allMigrations = [Initial1703170309875] +const allMetricsMigrations = [LndMetrics1703170330183, ChannelRouting1709316653538] export const TypeOrmMigrationRunner = async (log: PubLogger, storageManager: Storage, settings: DbSettings, arg: string | undefined): Promise => { - if (arg === 'initial_migration') { - await connectAndMigrate(log, storageManager, true, settings, [Initial1703170309875], []) + if (arg === 'fake_initial_migration') { + runFakeMigration(settings.databaseFile, [Initial1703170309875]) return true - } else if (arg === 'lnd_metrics_migration') { - await connectAndMigrate(log, storageManager, true, settings, [], [LndMetrics1703170330183]) - return true - } else if (arg === 'channel_routing_migration') { - await connectAndMigrate(log, storageManager, true, settings, [], [ChannelRouting1709316653538]) - return true - } else if (arg === 'all_migrations') { - await connectAndMigrate(log, storageManager, true, settings, [], allMigrations) - return true - } else if (settings.migrate) { - await connectAndMigrate(log, storageManager, false, settings, [], allMigrations) - return false } - await connectAndMigrate(log, storageManager, false, settings, [], []) + await connectAndMigrate(log, storageManager, allMigrations, allMetricsMigrations) return false } -const connectAndMigrate = async (log: PubLogger, storageManager: Storage, manual: boolean, settings: DbSettings, migrations: Function[], metricsMigrations: Function[]) => { - if (manual && settings.migrate) { - throw new Error("auto migration is enabled, no need to run manual migration") - } - if (migrations.length > 0) { - log("will add", migrations.length, "typeorm migrations...") - } +const connectAndMigrate = async (log: PubLogger, storageManager: Storage, migrations: Function[], metricsMigrations: Function[]) => { const { executedMigrations, executedMetricsMigrations } = await storageManager.Connect(migrations, metricsMigrations) if (migrations.length > 0) { log(executedMigrations.length, "of", migrations.length, "migrations were executed correctly") @@ -43,5 +26,4 @@ const connectAndMigrate = async (log: PubLogger, storageManager: Storage, manual log(executedMetricsMigrations.length, "of", metricsMigrations.length, "metrics migrations were executed correctly") log(executedMetricsMigrations) } - } \ No newline at end of file