프로그래밍/개발메모

prisma migrage 꼬인거 해결하기

SIDNFT 2025. 5. 18. 19:51
반응형

 

 

이글 보고 참고 했습니다.

글: https://jamie-em-lee.tistory.com/115

 

Prisma 스키마 동기화 중 Schema Drift 발생 시 데이터베이스 리셋 없이 해결하기

개요 내가 일하는 곳은 Prisma + PostgreSQL을 스택으로 한다. 프리즈마 스키마와 데이터베이스 스키마 동기화 과정 중에 발생한 스키마 드리프트(schema drift)를 어떻게 리셋 없이 해결했는지 작성해보

jamie-em-lee.tistory.com

 

글내용이 맞으며 저는 이상한짓을 해서 추가로 작업을 더 해야했습니다.

 

DateTime 에 기본값을 특정 날짜로 하려다 실패를 했는데 이후에 할줄을 몰라

/prisma/migrate 폴더를 주워 보기도 하고

db 에 _prisma_migrations 테이블을 지워보기도 했는데 

이러면 더 꼬여버려서 db 지우고 다시하라는 애러가 뜬 상태였습니다.

reset 을 하면 말그대로 디비가 다 날아가서 텅빈 상태가 됩니다.

 

먼저 db 와 내 schema.prisma 와의 차이를 구합니다.


npx prisma migrate diff `
    --from-schema-datasource .\prisma\schema.prisma `
    --to-schema-datamodel .\prisma\schema.prisma `
    --script > .\prisma\rollback.sql

VSCODE 에서 열어봅니다.

powershell 에서는 ` 글자(숫자1 왼족의 키) 가 멀티라인 명령어를 의미합니다.

powershell 에서 텍스트를 추출하면 utf-16 이 되는거 같습니다.

이 상태로는 사용할 수 없으니 utf-8 로 변경해줍니다.

[UTF-16] 이라고 표시된 부분을 클릭합니다.

상단에 Save with Encoding 누릅니다.

UTF-8 고릅니다.

UTF-8 with BOM 은 안해봤습니다. 글자 앞에 2글자의 특수값이 들어가는데 없어도 될꺼 같습니다.

npx prisma db execute `
    --file .\prisma\rollback.sql `
    --schema .\prisma\schema.prisma

쿼리를 전송합니다.

성공하면 이다음부터는 정상적으로 사용 가능합니다.

npx prisma migrate dev

 

저는 위에서한 뻘짓 때문에 살아나지 못했고

db 백업후에 다 날리고 reset 하고 마이그래이트 다시 진행했습니다.

 

 

 

 

 

반응형