From a639a1522bb2af0ca6f612a1294e6a927b5eaae3 Mon Sep 17 00:00:00 2001 From: "Dennis (via Claude+Gemma)" Date: Sat, 23 May 2026 04:25:28 +0200 Subject: [PATCH] gemma: generate apps/api/src/db/migrate.ts --- apps/api/src/db/migrate.ts | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 apps/api/src/db/migrate.ts diff --git a/apps/api/src/db/migrate.ts b/apps/api/src/db/migrate.ts new file mode 100644 index 0000000..0016786 --- /dev/null +++ b/apps/api/src/db/migrate.ts @@ -0,0 +1,39 @@ +import { migrate } from "drizzle-orm/node-postgres/migrator" +import { db } from "./index" +import { users } from "./schema" +import * as argon2 from "argon2" + +async function runMigration() { + try { + console.log("Running migrations...") + await migrate(db, { migrationsFolder: "./drizzle" }) + console.log("Migrations completed successfully") + + console.log("Checking for admin user...") + const existingAdmin = await db.query.users.findFirst({ + where: (users, { eq }) => eq(users.email, "admin@emberclone.local") + }) + + if (!existingAdmin) { + console.log("Creating default admin user...") + const passwordHash = await argon2.hash("emberclone2026") + + await db.insert(users).values({ + email: "admin@emberclone.local", + passwordHash, + name: "Admin", + role: "admin" + }) + console.log("Default admin user created: admin@emberclone.local") + } else { + console.log("Admin user already exists") + } + + process.exit(0) + } catch (error) { + console.error("Migration failed:", error) + process.exit(1) + } +} + +runMigration() \ No newline at end of file