diff --git a/metricsDatasource.js b/metricsDatasource.js index dbfff832..02103483 100644 --- a/metricsDatasource.js +++ b/metricsDatasource.js @@ -2,15 +2,17 @@ import { DataSource } from "typeorm" import { BalanceEvent } from "./build/src/services/storage/entity/BalanceEvent.js" import { ChannelBalanceEvent } from "./build/src/services/storage/entity/ChannelsBalanceEvent.js" import { ChannelRouting } from "./build/src/services/storage/entity/ChannelRouting.js" +import { RootOperation } from "./build/src/services/storage/entity/RootOperation.js" import { LndMetrics1703170330183 } from './build/src/services/storage/migrations/1703170330183-lnd_metrics.js' import { ChannelRouting1709316653538 } from './build/src/services/storage/migrations/1709316653538-channel_routing.js' import { HtlcCount1724266887195 } from './build/src/services/storage/migrations/1724266887195-htlc_count.js' +import { BalanceEvents1724860966825 } from './build/src/services/storage/migrations/1724860966825-balance_events.js' export default new DataSource({ type: "sqlite", database: "metrics.sqlite", - entities: [BalanceEvent, ChannelBalanceEvent, ChannelRouting], - migrations: [LndMetrics1703170330183, ChannelRouting1709316653538, HtlcCount1724266887195] + entities: [BalanceEvent, ChannelBalanceEvent, ChannelRouting, RootOperation], + migrations: [LndMetrics1703170330183, ChannelRouting1709316653538, HtlcCount1724266887195, BalanceEvents1724860966825] }); -//npx typeorm migration:generate ./src/services/storage/migrations/balance_events -d ./metricsDatasource.js \ No newline at end of file +//npx typeorm migration:generate ./src/services/storage/migrations/root_ops -d ./metricsDatasource.js \ No newline at end of file diff --git a/src/services/storage/db.ts b/src/services/storage/db.ts index 2ee113d9..6c580442 100644 --- a/src/services/storage/db.ts +++ b/src/services/storage/db.ts @@ -22,6 +22,7 @@ import { LndNodeInfo } from "./entity/LndNodeInfo.js" import { TrackedProvider } from "./entity/TrackedProvider.js" import { InviteToken } from "./entity/InviteToken.js" import { DebitAccess } from "./entity/DebitAccess.js" +import { RootOperation } from "./entity/RootOperation.js" export type DbSettings = { @@ -41,7 +42,7 @@ export const newMetricsDb = async (settings: DbSettings, metricsMigrations: Func const source = await new DataSource({ type: "sqlite", database: settings.metricsDatabaseFile, - entities: [BalanceEvent, ChannelBalanceEvent, ChannelRouting], + entities: [BalanceEvent, ChannelBalanceEvent, ChannelRouting, RootOperation], migrations: metricsMigrations }).initialize(); const log = getLogger({}); diff --git a/src/services/storage/migrations/1732566440447-root_ops.ts b/src/services/storage/migrations/1732566440447-root_ops.ts new file mode 100644 index 00000000..86f599c3 --- /dev/null +++ b/src/services/storage/migrations/1732566440447-root_ops.ts @@ -0,0 +1,14 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class RootOps1732566440447 implements MigrationInterface { + name = 'RootOps1732566440447' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TABLE "root_operation" ("serial_id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "operation_type" varchar NOT NULL, "operation_amount" integer NOT NULL, "operation_identifier" varchar NOT NULL, "created_at" datetime NOT NULL DEFAULT (datetime('now')), "updated_at" datetime NOT NULL DEFAULT (datetime('now')))`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP TABLE "root_operation"`); + } + +} diff --git a/src/services/storage/migrations/runner.ts b/src/services/storage/migrations/runner.ts index 8efd66d5..767e3d2e 100644 --- a/src/services/storage/migrations/runner.ts +++ b/src/services/storage/migrations/runner.ts @@ -16,8 +16,9 @@ import { DebitAccess1726496225078 } from './1726496225078-debit_access.js' import { DebitAccessFixes1726685229264 } from './1726685229264-debit_access_fixes.js' import { DebitToPub1727105758354 } from './1727105758354-debit_to_pub.js' import { UserCbUrl1727112281043 } from './1727112281043-user_cb_url.js' +import { RootOps1732566440447 } from './1732566440447-root_ops.js' const allMigrations = [Initial1703170309875, LspOrder1718387847693, LiquidityProvider1719335699480, LndNodeInfo1720187506189, TrackedProvider1720814323679, CreateInviteTokenTable1721751414878, PaymentIndex1721760297610, DebitAccess1726496225078, DebitAccessFixes1726685229264, DebitToPub1727105758354, UserCbUrl1727112281043] -const allMetricsMigrations = [LndMetrics1703170330183, ChannelRouting1709316653538, HtlcCount1724266887195, BalanceEvents1724860966825] +const allMetricsMigrations = [LndMetrics1703170330183, ChannelRouting1709316653538, HtlcCount1724266887195, BalanceEvents1724860966825, RootOps1732566440447] export const TypeOrmMigrationRunner = async (log: PubLogger, storageManager: Storage, settings: DbSettings, arg: string | undefined): Promise => { if (arg === 'fake_initial_migration') { runFakeMigration(settings.databaseFile, [Initial1703170309875])