prisma

Prisma를 사용하여 seed 데이터를 생성하고 적용하는 방법

이지영 2024. 1. 31. 18:29

데이터 시드(seed)란 ?

 초기 데이터나 테스트 데이터를 생성하고 채우는 과정

 

1. Seed 파일 생성: 먼저, Prisma seed를 정의하는 파일을 생성합니다. 예를 들어, prisma/seed.ts 파일을 만들고 다음과 같이 데이터를 정의합니다.

import { PrismaClient } from "@prisma/client";
import * as data from "../src/data/store_data.json";

const prisma = new PrismaClient();

async function seedData() {
  data?.["DATA"]?.map(async (store) => {
    const storeData = {
      phone: store?.tel_no,
      address: store?.rdn_code_nm,
      lat: store?.y_dnts,
      lng: store?.x_cnts,
      name: store?.upso_nm,
      category: store?.bizcnd_code_nm,
      storeType: store?.cob_code_nm,
      foodCertifyName: store?.crtfc_gbn_nm,
    };

    const res = await prisma.store.create({
      data: storeData,
    });
    console.log(res);
  });
}

async function main() {
  await seedData();
}

main()
  .catch((e) => {
    console.log(e);
    process.exit(1);
  })
  .finally(() => {
    prisma.$disconnect();
  });

 

2. typescript", "ts-node", 그리고 "@types/node"를 개발 의존성(dependency)으로 추가

npm install -D typescript ts-node @types/node

 

3. 일부 프로젝트에서는 컴파일 옵션을 추가해야 할 수도 있습니다. 예를 들어 Next.js를 사용하는 경우 다음과 같이 시드 스크립트를 설정합니다.

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

 

4. 데이터베이스를 시드 실행

npx prisma db seed

 

 

- 참고 : https://www.prisma.io/docs/orm/prisma-migrate/workflows/seeding#how-to-seed-your-database-in-prisma