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