add database seeding for admin user
This commit is contained in:
@ -72,25 +72,6 @@ model AuditoryResource {
|
||||
platform_links PlatformLink[]
|
||||
}
|
||||
|
||||
// Necessary for Next auth
|
||||
model Account {
|
||||
id String @id @default(auto()) @map("_id") @db.ObjectId
|
||||
userId String @db.ObjectId
|
||||
type String
|
||||
provider String
|
||||
providerAccountId String
|
||||
refresh_token String? // @db.Text
|
||||
access_token String? // @db.Text
|
||||
expires_at Int?
|
||||
token_type String?
|
||||
scope String?
|
||||
id_token String? // @db.Text
|
||||
session_state String?
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@unique([provider, providerAccountId])
|
||||
}
|
||||
|
||||
model Session {
|
||||
id String @id @default(auto()) @map("_id") @db.ObjectId
|
||||
sessionToken String @unique
|
||||
@ -100,13 +81,11 @@ model Session {
|
||||
}
|
||||
|
||||
model User {
|
||||
id String @id @default(auto()) @map("_id") @db.ObjectId
|
||||
name String?
|
||||
email String? @unique
|
||||
emailVerified DateTime?
|
||||
image String?
|
||||
accounts Account[]
|
||||
sessions Session[]
|
||||
id String @id @default(auto()) @map("_id") @db.ObjectId
|
||||
name String?
|
||||
username String? @unique
|
||||
password String
|
||||
sessions Session[]
|
||||
}
|
||||
|
||||
model VerificationToken {
|
||||
|
35
prisma/seed.ts
Normal file
35
prisma/seed.ts
Normal file
@ -0,0 +1,35 @@
|
||||
import { PrismaClient } from "@prisma/client";
|
||||
import * as argon2 from "argon2";
|
||||
import * as dotenv from "dotenv";
|
||||
|
||||
dotenv.config();
|
||||
|
||||
const prisma = new PrismaClient(); // Prisma client instance
|
||||
|
||||
/**
|
||||
* Seed the database with admin user
|
||||
*/
|
||||
async function main() {
|
||||
const hashedPassword = await argon2.hash(
|
||||
process.env.ADMIN_PASSWORD as string
|
||||
);
|
||||
|
||||
await prisma.user.upsert({
|
||||
where: { username: "admin" },
|
||||
update: {},
|
||||
create: {
|
||||
name: "Admin User",
|
||||
username: "admin",
|
||||
password: hashedPassword,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
main()
|
||||
.then(async () => {
|
||||
await prisma.$disconnect();
|
||||
})
|
||||
.catch(async (e) => {
|
||||
console.error(e);
|
||||
await prisma.$disconnect();
|
||||
});
|
Reference in New Issue
Block a user