1153bcc13a
Prisma 7 requires explicit database adapter for runtime connections. - Install @prisma/adapter-pg + pg - Update prisma.ts: use PrismaPg adapter with DATABASE_URL - Update seed.ts: same adapter pattern - Dockerfile: copy pg deps to runner stage Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
82 lines
2.0 KiB
TypeScript
82 lines
2.0 KiB
TypeScript
import "dotenv/config";
|
|
import { PrismaClient } from "../src/generated/prisma/client";
|
|
import { PrismaPg } from "@prisma/adapter-pg";
|
|
import bcrypt from "bcryptjs";
|
|
|
|
const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL! });
|
|
const prisma = new PrismaClient({ adapter });
|
|
|
|
async function main() {
|
|
console.log("Seeding database...");
|
|
|
|
const hashedPassword = await bcrypt.hash("Password123!", 10);
|
|
|
|
// Admin
|
|
const admin = await prisma.user.upsert({
|
|
where: { email: "admin@second-brain.ru" },
|
|
update: {},
|
|
create: {
|
|
email: "admin@second-brain.ru",
|
|
name: "Администратор",
|
|
emailVerified: true,
|
|
role: "admin",
|
|
accounts: {
|
|
create: {
|
|
accountId: "admin@second-brain.ru",
|
|
providerId: "credential",
|
|
password: hashedPassword,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
// Curator
|
|
const curator = await prisma.user.upsert({
|
|
where: { email: "curator@second-brain.ru" },
|
|
update: {},
|
|
create: {
|
|
email: "curator@second-brain.ru",
|
|
name: "Куратор",
|
|
emailVerified: true,
|
|
role: "curator",
|
|
accounts: {
|
|
create: {
|
|
accountId: "curator@second-brain.ru",
|
|
providerId: "credential",
|
|
password: hashedPassword,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
// Student
|
|
const student = await prisma.user.upsert({
|
|
where: { email: "student@second-brain.ru" },
|
|
update: {},
|
|
create: {
|
|
email: "student@second-brain.ru",
|
|
name: "Ученик",
|
|
emailVerified: true,
|
|
role: "student",
|
|
accounts: {
|
|
create: {
|
|
accountId: "student@second-brain.ru",
|
|
providerId: "credential",
|
|
password: hashedPassword,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
console.log("Created users:");
|
|
console.log(` Admin: ${admin.email}`);
|
|
console.log(` Curator: ${curator.email}`);
|
|
console.log(` Student: ${student.email}`);
|
|
console.log(" Password for all: Password123!");
|
|
console.log("Done.");
|
|
}
|
|
|
|
main()
|
|
.catch(console.error)
|
|
.finally(() => prisma.$disconnect());
|