43 lines
1.0 KiB
TypeScript
43 lines
1.0 KiB
TypeScript
// /opt/erp-system/prisma/seed.ts
|
|
import { PrismaClient } from '@prisma/client';
|
|
import { PrismaPg } from '@prisma/adapter-pg';
|
|
import { Pool } from 'pg';
|
|
import bcrypt from 'bcryptjs';
|
|
import * as dotenv from 'dotenv';
|
|
|
|
// Umgebungsvariablen laden
|
|
dotenv.config();
|
|
|
|
// Prisma mit dem PostgreSQL-Adapter initialisieren
|
|
const pool = new Pool({ connectionString: process.env.DATABASE_URL });
|
|
const adapter = new PrismaPg(pool);
|
|
const prisma = new PrismaClient({ adapter });
|
|
|
|
async function main() {
|
|
const hashedPassword = await bcrypt.hash('admin123', 10);
|
|
|
|
const admin = await prisma.user.upsert({
|
|
where: { email: 'admin@erp.local' },
|
|
update: {},
|
|
create: {
|
|
email: 'admin@erp.local',
|
|
firstName: 'System',
|
|
lastName: 'Admin',
|
|
passwordHash: hashedPassword,
|
|
role: 'ADMIN',
|
|
},
|
|
});
|
|
|
|
console.log('Initianler Admin erstellt:', admin.email);
|
|
}
|
|
|
|
main()
|
|
.catch((e) => {
|
|
console.error(e);
|
|
process.exit(1);
|
|
})
|
|
.finally(async () => {
|
|
// Verbindung sauber trennen
|
|
await pool.end();
|
|
});
|