WeekEditor: "Mahlzeit hinzufügen" zeigt jetzt ein Suchfeld mit gefilterter Trefferliste (wie die Live-Suche bei Gerichten) statt einer langen Dropdown-Liste zum Durchscrollen. Ausgewähltes Gericht lässt sich per ×-Button wieder ändern. Neues Skript db/seed-demo.sql (+ db/seed-demo.mjs, "npm run db:seed-demo"): spielt den ursprünglichen Beispieldatensatz ein (4 Essenszeiten, 14 Allergene, 11 Zusatzstoffe, 18 Testgerichte, zwei Beispielwochen) – nur für lokale Entwicklung/Demos, kein Teil der automatischen Migrationen, da frische Deployments weiterhin leer starten sollen.
31 lines
830 B
JavaScript
31 lines
830 B
JavaScript
#!/usr/bin/env node
|
||
// Spielt db/seed-demo.sql ein: ersetzt Essenszeiten/Gerichte/Allergene/
|
||
// Zusatzstoffe/Wochenplan durch den Beispieldatensatz. Nur für lokale
|
||
// Entwicklung/Demos gedacht, läuft nicht automatisch beim Start.
|
||
|
||
import { readFileSync } from "node:fs";
|
||
import { dirname, join } from "node:path";
|
||
import { fileURLToPath } from "node:url";
|
||
import pg from "pg";
|
||
|
||
const sql = readFileSync(
|
||
join(dirname(fileURLToPath(import.meta.url)), "seed-demo.sql"),
|
||
"utf8"
|
||
);
|
||
|
||
async function main() {
|
||
const client = new pg.Client({ connectionString: process.env.DATABASE_URL });
|
||
await client.connect();
|
||
try {
|
||
await client.query(sql);
|
||
console.log("db:seed-demo – Beispieldaten eingespielt.");
|
||
} finally {
|
||
await client.end();
|
||
}
|
||
}
|
||
|
||
main().catch((err) => {
|
||
console.error(err);
|
||
process.exit(1);
|
||
});
|