Backend

[prisma] 데이터 손실 없이 migrate 하기

하우아유두잉 2023. 5. 24. 11:40

Object-Relational Mapping (ORM) framework인 prisma로 개발을 하고 있다.

 

schema.prisma 파일에서 코드로 테이블 모델을 정의해서 너무 편하다.

변경된 사항이 있을 경우 $npx prisma migrate dev 명령어를 통해 한번에 변경할 수 있다.

그런데 단점이, 테이블에 큰 변화가 생길 경우 모든 데이터가 지워진다는 것이다.

개발 단계에서는 유용하나, 어느정도 진행이 되면 불편해진다.

 

다른 방법이 없을까 찾다가 한 가지 방법을 알게 되어 글로 남기고자 한다.

 

 

1. 직접 변경

  - 콘솔 : cmd 창으로 직접 접속해 명령어로 DB 테이블을 수정한다.

  - 툴 사용 : pgadmin을 사용해 수정한다.

 

2. 스키마 검증

   - 아래 명령어를 입력하면 DB 주소를 확인 할 수 있다.

   $ npx prisma validate

 

3.  수정사항 가져오기

  - 아래 명령어를 입력하면 DB의 스키마 정보가 schema.prisma에 덮어씌어진다.

  $ npx prisma db pull

4. 수정사항 적용하기

  - 아래 명령어를 입력하면 DB 데이터를 유지하면서 수정된 내용이 적용된다.

  - npx prisma db push