/** * apply-flag-migration.ts * * Applies the flagged_content table migration to Turso. * Run with: npx tsx scripts/apply-flag-migration.ts */ import dotenv from "dotenv"; import path from "node:path"; const envFile = process.env.NODE_ENV === "production" ? "../.env.production" : "../.env.development"; dotenv.config({ path: path.resolve(__dirname, envFile) }); import { createClient } from "@libsql/client"; async function main() { const db = createClient({ url: process.env.DATABASE_URL!, authToken: process.env.DATABASE_TOKEN!, }); console.log("Applying migration: create flagged_content table..."); await db.execute(` CREATE TABLE IF NOT EXISTS flagged_content ( id text PRIMARY KEY NOT NULL, content_type text NOT NULL, content_id text NOT NULL, field_name text NOT NULL, notes text DEFAULT '', flag_count integer DEFAULT 1 NOT NULL, created_at text DEFAULT (datetime('now')) NOT NULL, updated_at text DEFAULT (datetime('now')) NOT NULL ) `); await db.execute(` CREATE INDEX IF NOT EXISTS idx_flagged_content_type ON flagged_content (content_type) `); await db.execute(` CREATE INDEX IF NOT EXISTS idx_flagged_content_id ON flagged_content (content_id) `); console.log("Migration applied successfully."); db.close(); } main().catch((err) => { console.error("Migration failed:", err); process.exit(1); });