Seeding NestJs with Prisma And Faker,height=420,fit=cover,gravity=auto,format=auto/

––– views

2 mins

1 Aug 2021

  • Seeding NestJs with Prisma And Faker
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.

What you'll need:

  • NestJs template for existing project setup with prisma as the default ORM As someone once said.
ez commands got brrrr.
  • For NestJs
git clone 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 }
  • env("DATABASE_URL") is set in .env file
After that run :
yarn prisma generate yarn prisma migate dev init
Now: onto the actual seeder using faker for generating random data and dotenv to initialize environment variables :
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: +, 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(); });
  • Add the seeder to our
    for ease of use:
{ ... "scripts":{ ... "seed": "ts-node prisma/seed.ts" } ... }
  • And then we run the seeder:
yarn seed
✨ That's it ✨ The preview of the database:
  • Source code :
(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:

Not Playing

Made with nextjs and ❤