commit
ea6bd203b3
2 changed files with 20 additions and 25 deletions
|
|
@ -69,3 +69,16 @@ export default async (settings: DbSettings, migrations: Function[]): Promise<{ s
|
|||
}
|
||||
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 })
|
||||
}
|
||||
|
|
@ -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<boolean> => {
|
||||
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)
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue