Seeding NestJs with Prisma And Faker

Navin Kodag2 mins

01 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 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

Migrate.png 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: db-preview.png

(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:

Made with Next.js & ❤️
© 2021 Navin Kodag. All rights reserved.