본문 바로가기

웹개발/Database

Prisma로 마이그레이션 초기화 방식 #01 - 데이터 모두 필요없는 개발 초기 상태일때 테이블 수정되었을때

반응형

 

목표

  • DB에 있는 데이터 + 스키마 구조 전부 삭제
  • 기존 migrations/ 폴더도 삭제
  • 깨끗한 상태에서 migrate dev로 새롭게 마이그레이션 이력 시작

* 아래 방식 예시는 multi schema 사용중인 예시입니다.
다중 스키마 사용상에서는 하나의 db에 스키마를 분리하여 env에서 두개의 URL변수로 분리하여 스키마별 datasource에 url을 개별적으로 적용해주어 사용합니다.

1단계: DB 초기화 (스키마 삭제)

PostgreSQL에 접속해서 아래 명령으로 각각 스키마 삭제:

-- core 스키마 삭제
DROP SCHEMA core CASCADE;

-- video 스키마 삭제
DROP SCHEMA video CASCADE;

주의: CASCADE를 붙여야 하위 테이블/데이터도 모두 삭제돼.

 

2단계: migrations/ 폴더 삭제

rm -rf prisma/core/migrations
rm -rf prisma/video/migrations

Windows면 del /s prisma\core\migrations 같이 사용해도 됨

 

3단계: _prisma_migrations 테이블 제거 (선택)

  • core, video가 같은 DB(wss_db) 안에 있을 경우,
  • 내부적으로 사용하는 _prisma_migrations 테이블도 지우는 게 좋음
DROP TABLE IF EXISTS "core"."_prisma_migrations";
DROP TABLE IF EXISTS "video"."_prisma_migrations";

※ 실제로는 스키마 삭제 시 함께 날아감

 

4단계: generate 다시

npx prisma generate --schema=./prisma/core/schema.prisma
npx prisma generate --schema=./prisma/video/schema.prisma

 

 

5단계: 새로운 마이그레이션 시작

npx prisma migrate dev --name init --schema=./prisma/core/schema.prisma
npx prisma migrate dev --name init --schema=./prisma/video/schema.prisma

결과

지금 정의된 schema.prisma 기준으로
완전히 새로운 마이그레이션 이력이 생기고,
DB 구조도 싹 새로 생성됨.

반응형