import fs from 'fs'; import Database from 'better-sqlite3'; // 1. JSON lesen const data = JSON.parse(fs.readFileSync('./data.json', 'utf-8')); const db = new Database('recipes.db'); // 2. Tabellen erstellen db.exec(` CREATE TABLE users ( id INTEGER PRIMARY KEY, username TEXT UNIQUE, password TEXT, is_admin INTEGER, created_at TEXT ); CREATE TABLE recipes ( id INTEGER PRIMARY KEY, name TEXT, description TEXT, ingredients TEXT, steps TEXT, category TEXT, source TEXT, source_url TEXT, source_author TEXT, tiktok_url TEXT, tiktok_author TEXT, thumbnail_url TEXT, user_id INTEGER, created_at TEXT, updated_at TEXT ); CREATE TABLE invite_tokens ( id INTEGER PRIMARY KEY, token TEXT UNIQUE, created_by INTEGER, used_by INTEGER, created_at TEXT, used_at TEXT ); `); // 3. Daten einfügen const insertUser = db.prepare('INSERT INTO users VALUES (?, ?, ?, ?, ?)'); data.users.forEach(u => insertUser.run(u.id, u.username, u.password, u.is_admin, u.created_at)); const insertRecipe = db.prepare('INSERT INTO recipes VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'); data.recipes.forEach(r => insertRecipe.run(r.id, r.name, r.description, r.ingredients, r.steps, r.category, r.source, r.source_url, r.source_author, r.tiktok_url, r.tiktok_author, r.thumbnail_url, r.user_id, r.created_at, r.updated_at)); const insertToken = db.prepare('INSERT INTO invite_tokens VALUES (?, ?, ?, ?, ?, ?)'); data.invite_tokens.forEach(t => insertToken.run(t.id, t.token, t.created_by, t.used_by, t.created_at, t.used_at)); console.log('Migration erfolgreich abgeschlossen!');