70 lines
1.7 KiB
Markdown
70 lines
1.7 KiB
Markdown
|
---
|
||
|
banner: "https://cdn.discordapp.com/attachments/1050995657797816341/1090574124960727070/Triston_Prisma_magical_magistic_spacial_ffbc2d7d-fcd2-4bd0-b78a-f6ebc8776501.png"
|
||
|
---
|
||
|
up:: [[Boilerplate Code]]
|
||
|
X:: [[JavaScript]]
|
||
|
tags:: #boilerplate
|
||
|
|
||
|
### Updating schema file
|
||
|
after the file has been updated with new schema details, a new migration needs to be run
|
||
|
```bash
|
||
|
npx prisma migrate --name init
|
||
|
```
|
||
|
|
||
|
then we can run the command below to reset and set new seed
|
||
|
|
||
|
### How to clear the Database and rerun seeds
|
||
|
``` bash
|
||
|
npx prisma migrate reset
|
||
|
```
|
||
|
|
||
|
### how to run seed command
|
||
|
before being able to run seed command, you need to enable seeding in the packag.json file
|
||
|
add this key/val pair to package json root
|
||
|
```json
|
||
|
"prisma": {
|
||
|
"seed": "ts-node --compiler-options {\"module\":\"CommonJS\"} prisma/seed.ts"
|
||
|
}
|
||
|
```
|
||
|
the `--compiler-options {\"module\":\"CommonJS\"}` part is for next.js
|
||
|
|
||
|
now we can run seed command
|
||
|
`npx prisma db seed`
|
||
|
should work if seed file created already
|
||
|
|
||
|
### Boiler-plate seed file
|
||
|
```ts
|
||
|
import { PrismaClient, Prisma } from "@prisma/client";
|
||
|
|
||
|
const prisma = new PrismaClient();
|
||
|
|
||
|
const userData: Prisma.UserCreateInput[] = [
|
||
|
{
|
||
|
email: "email@gmail.com",
|
||
|
password: "$2b$04$C/l6kQt/LCNxp4HTR.fZde2mN68ppAyhx7rf1nFAWOza.YqzGNylK",
|
||
|
},
|
||
|
];
|
||
|
|
||
|
async function main() {
|
||
|
console.log(`Start seeding ...`);
|
||
|
for (const u of userData) {
|
||
|
const user = await prisma.user.create({
|
||
|
data: u,
|
||
|
});
|
||
|
console.log(`Created user with id: ${user.id}`);
|
||
|
}
|
||
|
console.log(`Seeding finished.`);
|
||
|
}
|
||
|
|
||
|
main()
|
||
|
.then(async () => {
|
||
|
await prisma.$disconnect();
|
||
|
})
|
||
|
.catch(async (e) => {
|
||
|
console.error(e);
|
||
|
await prisma.$disconnect();
|
||
|
process.exit(1);
|
||
|
});
|
||
|
```
|
||
|
|