반응형
목표
- 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 구조도 싹 새로 생성됨.
반응형
'웹개발 > Database' 카테고리의 다른 글
Prisma CLI 데이터베이스 스키마 관리 명령문 모음 (0) | 2025.04.20 |
---|---|
멀티 스키마 (multi schema) 사용 개발시 폴더 구조 및 flow 설계 (0) | 2025.04.18 |