Published on

Prisma Seeding

Authors
  • avatar
    Name
    Inhwan Cho
    Twitter

Prisma Seeding

데이터 시딩(Data Seeding) 이란?
초기 단계에서 데이터베이스에 데이터를 자동으로 입력하는 과정을 말합니다.
새로운 시스템을 구축하거나, 애플리케이션을 개발하는 과정에서 기본적으로 필요한 데이터가 있을 수 있는데,
이러한 데이터를 미리 준비해서 데이터베이스에 삽입하는 것을 의미합니다.
예를 들어, 새로운 온라인 쇼핑몰을 개발 중일 때, 상품 정보, 사용자 정보, 카테고리 정보 등의 기본 데이터를 미리 준비하여 데이터베이스에 넣는 것이 시스템의 기능을 테스트하거나 데모를 보여주는데 매우 유용합니다.

방법

  • 일단, 스키마에서 모델이 설정이 끝나있어야 됩니다.
  1. prisma/seed.ts를 생성
  • 더미 데이터를 생성
prisma/seed.ts
import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

async function main() {
  const user1 = await prisma.user.create({
    data: {
      name: 'Alice',
      email: 'alice@example.com',
    },
  });

  console.log(`User Created: ${user1.name} (ID: ${user1.id})`);
}

main()
  .catch((e) => {
    console.error(e);
    process.exit(1);
  })
  .finally(async () => {
    await prisma.$disconnect();
  });
  • 여기서 $ 달러표시가 붙은 메소드나 프로퍼티는 Prisma Client의 내부나 특별한 기능을 가리키며, Prisma에서 고유하게 제공하는 API를 나타냅니다.
  1. package.json 파일 수정
{
  "scripts": {
    "seed": "ts-node prisma/seed.ts" 
  }
}
  1. npx prisma db seed를 실행

시딩 프로세스가 성공적으로 완료되면, 지정한 데이터가 데이터베이스에 추가된 것을 확인할 수 있습니다.

데이터 시딩은 개발 및 테스트 단계에서 데이터베이스를 예측 가능한 상태로 초기화하고 관리하는 데 매우 유용합니다.

Prisma를 활용하면 이러한 과정을 매우 간결하고 효율적으로 처리할 수 있습니다.