Isolate legacy migration transactions

This commit is contained in:
2026-07-23 19:06:30 +02:00
parent 9be94028b3
commit 4d5eb22e66
5 changed files with 180 additions and 127 deletions
@@ -1,6 +1,6 @@
import crypto from "node:crypto";
import { eq, inArray } from "drizzle-orm";
import { db } from "../client.js";
import type { AppDatabase } from "../database-context.js";
import { circuitDeviceRows } from "../schema/circuit-device-rows.js";
import { circuits } from "../schema/circuits.js";
import { legacyConsumerCircuitMigrations } from "../schema/legacy-consumer-circuit-migrations.js";
@@ -8,11 +8,11 @@ import { legacyConsumerMigrationReports } from "../schema/legacy-consumer-migrat
import {
toCircuitDeviceRowCreateValues,
type CircuitDeviceRowCreateInput,
} from "./circuit-device-row.repository.js";
} from "./circuit-device-row.persistence.js";
import {
toCircuitCreateValues,
type CircuitCreatePersistenceInput,
} from "./circuit.repository.js";
} from "./circuit.persistence.js";
export interface LegacyMigrationCircuitPersistenceInput {
circuit: CircuitCreatePersistenceInput;
@@ -34,8 +34,10 @@ export interface LegacyMigrationReportPersistenceInput {
}
export class LegacyConsumerMigrationRepository {
constructor(private readonly database: AppDatabase) {}
async listMigratedConsumerIds(circuitListId: string) {
const rows = await db
const rows = await this.database
.select({ consumerId: legacyConsumerCircuitMigrations.consumerId })
.from(legacyConsumerCircuitMigrations)
.where(eq(legacyConsumerCircuitMigrations.circuitListId, circuitListId));
@@ -78,7 +80,7 @@ export class LegacyConsumerMigrationRepository {
});
const createdAtIso = new Date().toISOString();
db.transaction((tx) => {
this.database.transaction((tx) => {
if (consumerIds.length > 0) {
const existingMappings = tx
.select({ consumerId: legacyConsumerCircuitMigrations.consumerId })