Verify legacy migration completion

This commit is contained in:
2026-07-23 19:16:41 +02:00
parent 030f18aeb0
commit d7ce135ac8
4 changed files with 94 additions and 3 deletions
@@ -1,8 +1,9 @@
import crypto from "node:crypto";
import { eq, inArray } from "drizzle-orm";
import { eq, inArray, isNull } from "drizzle-orm";
import type { AppDatabase } from "../database-context.js";
import { circuitDeviceRows } from "../schema/circuit-device-rows.js";
import { circuits } from "../schema/circuits.js";
import { consumers } from "../schema/consumers.js";
import { legacyConsumerCircuitMigrations } from "../schema/legacy-consumer-circuit-migrations.js";
import { legacyConsumerMigrationReports } from "../schema/legacy-consumer-migration-report.js";
import {
@@ -36,6 +37,21 @@ export interface LegacyMigrationReportPersistenceInput {
export class LegacyConsumerMigrationRepository {
constructor(private readonly database: AppDatabase) {}
async listUnmigratedConsumers() {
return this.database
.select({
id: consumers.id,
projectId: consumers.projectId,
circuitListId: consumers.circuitListId,
})
.from(consumers)
.leftJoin(
legacyConsumerCircuitMigrations,
eq(legacyConsumerCircuitMigrations.consumerId, consumers.id)
)
.where(isNull(legacyConsumerCircuitMigrations.consumerId));
}
async listMigratedConsumerIds(circuitListId: string) {
const rows = await this.database
.select({ consumerId: legacyConsumerCircuitMigrations.consumerId })