Seeding NestJs with Prisma And Faker

Navin Kodag
2 min readAug 1, 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 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
After seeding

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: +,
password: faker.internet.password(),

async function main() {
const fakerRounds = 10;
/// --------- Users ---------------
for (let i = 0; i < fakerRounds; i++) {
await prisma.user.create({ data: fakerUser() });

.catch((e) => console.error(e))
.finally(async () => {
await prisma.$disconnect();
  • Add the seeder to our package.json for ease of use:
"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: