Files

28 lines
693 B
JavaScript

import { hash } from "bcryptjs";
import { PrismaClient } from "@prisma/client";
const email = process.env.ADMIN_EMAIL?.trim().toLowerCase();
const password = process.env.ADMIN_PASSWORD;
if (!email || !password) {
throw new Error("ADMIN_EMAIL and ADMIN_PASSWORD are required to seed the admin user.");
}
if (password.length < 12) {
throw new Error("ADMIN_PASSWORD must be at least 12 characters long.");
}
const prisma = new PrismaClient();
try {
const passwordHash = await hash(password, 12);
await prisma.user.upsert({
where: { email },
update: { password: passwordHash },
create: { email, password: passwordHash },
});
} finally {
await prisma.$disconnect();
}