Seeding NestJs with Prisma And Faker
––– views
•
2 mins
1 Aug 2021
I've been working on this college project and I chose NestJs for the backend. You could just Hasura or other BaaS platforms for small projects. But I wanted to learn NestJs.
Note: Usage with other ORMs might differ but will be almost the same because we'll be using a script.
ez commands got brrrr.
git clone https://github.com/nestjs/typescript-starter.git project cd project yarn yarn add -D prisma npx prisma init
// prisma/scheme.prisma datasource db { provider = "postgresql" url = env("DATABASE_URL") } generator client { provider = "prisma-client-js" } model User { id Int @id @default(autoincrement()) name String email String @unique password String }
After that run :
yarn prisma generate yarn prisma migate dev init
yarn add -D faker dotenv
Now create the script:
// prisma/seed.ts import { PrismaClient } from '@prisma/client'; import * as faker from 'faker'; import * as dotenv from 'dotenv'; const prisma = new PrismaClient(); const fakerUser = (): any => ({ name: faker.name.firstName() + faker.name.lastName(), email: faker.internet.email(), password: faker.internet.password(), }); async function main() { const fakerRounds = 10; dotenv.config(); console.log('Seeding...'); /// --------- Users --------------- for (let i = 0; i < fakerRounds; i++) { await prisma.user.create({ data: fakerUser() }); } }; main() .catch((e) => console.error(e)) .finally(async () => { await prisma.$disconnect(); });
{ ... "scripts":{ ... "seed": "ts-node prisma/seed.ts" } ... }
yarn seed
✨ That's it ✨ The preview of the database:
(If you're a beginner) don't be alarmed at the number of packages because devDependencies aren't bundled in the production build :]
You can find me at: https://100lvlmaster.in