Files
leistungsbilanz-ts/scripts/db-verify-circuit-schema.js

32 lines
952 B
JavaScript

const Database = require("better-sqlite3");
const path = require("node:path");
const dbPath = path.resolve("data", "leistungsbilanz.db");
const db = new Database(dbPath, { readonly: true });
const requiredTables = [
"circuit_sections",
"circuits",
"circuit_device_rows",
"legacy_consumer_circuit_migrations",
"legacy_consumer_migration_reports",
];
const rows = db
.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name IN (?, ?, ?, ?, ?)")
.all(...requiredTables);
const existing = new Set(rows.map((row) => row.name));
const missing = requiredTables.filter((name) => !existing.has(name));
console.log("Database:", dbPath);
console.log("Required tables:", requiredTables.join(", "));
console.log("Existing tables:", [...existing].join(", ") || "(none)");
if (missing.length > 0) {
console.error("Missing tables:", missing.join(", "));
process.exit(1);
}
console.log("Circuit-first schema verification passed.");