코드 테스트를 위해서 일정량 이상의 데이터가 필요한 경우 더미 데이터를 생성한다. 이를 데이터베이스에 씨앗을 뿌린다는 의미로 데이터베이스 시딩이라고 한다.
Prisma
에서는 다음과 같이 Seed를 생성할 수 있다.
// prisma/seed.ts
import { PrismaClient } from "@prisma/client";
const client = new PrismaClient();
async function main() {
[...Array.from(Array(30).keys())].forEach(async (item) => {
await client.profile.create({
data: {
stringKey: String(item),
numberKey: item,
user: {
connect: {
id: 1,
}
}
});
console.log(`${item}/30`);
});
}
main()
.catch((e) => console.log(e))
.finally(() => client.$disconnect);
prisma
디렉토리에 seed.ts
파일을 생성한다.client
를 호출한 후 필요한 데이터의 개수만큼 Array
를 만든다.connect
로 외래키와 연결한다.main()
함수 실행, 에러 제어,finally
로 DB연결을 종료한다.// package.json
{
...rest,
"prisma": {
"seed": "ts-node --compiler-options {\"module\":\"CommonJS\"} prisma/seed.ts"
}
}
// ts-node 설치
npm i ts-node
// seed 생성
npx prisma db seed
package.json
에 위의 prisma
코드를 추가한다.ts-node
가 없다면 설치한다.prisma
에 생성한 seed
를 푸시한다.