imkFinal/backend/prisma/seed.ts
2025-03-29 17:08:01 +01:00

55 lines
1.4 KiB
TypeScript

// backend/prisma/seed.ts
import { PrismaClient } from "@prisma/client";
import * as bcrypt from "bcrypt";
const prisma = new PrismaClient();
async function main() {
const defaultAdminEmail = process.env.DEFAULT_ADMIN_EMAIL || "admin@imk.com";
const defaultAdminPassword =
process.env.DEFAULT_ADMIN_PASSWORD || "admin123456";
const defaultAdminName = process.env.DEFAULT_ADMIN_NAME || "System Admin";
try {
// Check if admin already exists
const existingAdmin = await prisma.user.findUnique({
where: { email: defaultAdminEmail },
});
if (!existingAdmin) {
// Hash the password
const hashedPassword = await bcrypt.hash(defaultAdminPassword, 10);
// Create the admin user
const admin = await prisma.user.create({
data: {
email: defaultAdminEmail,
name: defaultAdminName,
password: hashedPassword,
isAdmin: true,
},
});
console.log("Default admin user created:", {
id: admin.id,
email: admin.email,
name: admin.name,
});
} else {
console.log("Default admin user already exists");
}
} catch (error) {
console.error("Error creating default admin:", error);
throw error;
}
}
main()
.catch((e) => {
console.error(e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});