add database seeding for admin user

This commit is contained in:
Brandon Egger
2023-05-09 23:56:14 -05:00
parent 23cf2d3e01
commit 6cef945bdf
12 changed files with 2514 additions and 1098 deletions

View File

@ -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
View 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();
});