Prisma를 이용한 테스트용 데이터 생성하기

jisoung·2022년 12월 2일
0

Prisma

목록 보기
3/3
post-thumbnail

가끔 작업을 하다보면 테스트용으로 많은 데이터가 필요할 때가 있다.
(ex: 페이지네이션)

그렇때 prisma에서는 유용한 기능을 제공해준다.

// prisma/seed.ts
import { PrismaClient } from '@prisma/client';

const client = new PrismaClient();

먼저 prisma client를 불러온다.

// prisma/seed.ts
[...Array.from(Array(500).keys())].forEach(async (item) => {
   		// 생략
    });

그리고 엄청나게 많은 데이터를 불러올 샘플 배열을 만들고, 생성한다.

// prisma/seed.ts
// sample이라는 가상의 테이블이 있다 가정
// 그 샘플은 name과 user를 가진다. (name은 id를 가진다.)
[...Array.from(Array(500).keys())].forEach(async (item) => {
        const stream = await client.sample.create({
            data:{
                name: String(item),
                user: {
                    connect: {
                        id: 1,
                    },
                },
            },
        });
        console.log(`${item}/500`);
    });

위와 같은 코드를 실행하기 위해서는 package 파일에 추가해야 할 것이 있다.
위 코드는 prisma/seed.ts와 같은 경로에 있다고 가정할 때
package 파일 맨 밑에 다음과 같은 코드를 작성해준다.

"prisma":{
    "seed": "ts-node --compiler-options {\"module\":\"CommonJS\"} prisma/seed.ts"
 }

터미널을 열고 다음과 같은 명령어를 입력해준다.(참고로 db와 연결된 상태여야 한다.)

npx prisma db seed
profile
-Keep Humble-

0개의 댓글