#!/usr/bin/env node // bundle-migrations.mjs — Bündelt alle SQL-Migrationen in EINE Datei. // // Bei einer frischen Instanz ohne supabase-CLI/psql-Zugang ist das der // schnellste Weg: dieses Bündel einmal in den Supabase-Studio-SQL-Editor // einfügen und ausführen. Die Migrationen sind so geschrieben, dass sie // idempotent genug für einen Erst-Lauf auf leerer DB sind. // // Aufruf: // node scripts/bundle-migrations.mjs > /tmp/teamvis-schema.sql // # dann /tmp/teamvis-schema.sql in Supabase Studio einfügen + ausführen import { readdirSync, readFileSync } from "node:fs"; const dir = new URL("../supabase/migrations/", import.meta.url); const files = readdirSync(dir) .filter((f) => f.endsWith(".sql")) .sort(); let out = `-- TeamVis Schema-Bündel (${files.length} Migrationen)\n`; out += `-- Erzeugt: ${new Date().toISOString()}\n`; out += `-- Reihenfolge entspricht der Datei-Nummerierung.\n`; for (const f of files) { const sql = readFileSync(new URL(f, dir), "utf8"); out += `\n\n-- ════════════════════════════════════════════════════════\n`; out += `-- ${f}\n`; out += `-- ════════════════════════════════════════════════════════\n\n`; out += sql.trimEnd() + "\n"; } process.stdout.write(out);