데이터 두 개 존재
id | documentId | version |
---|---|---|
1 | 1 | 1 |
2 | 1 | 2 |
현재 [documentId, version]
unique
version
제거 및 documentId
unique 원함
마이그레이션 적용 결과,
verison
제거 성공, documentId
unqiue 실패(중복 데이터 존재)
id | documentId |
---|---|
1 | 1 |
2 | 1 |
Option 1. 롤백
CREATE UNIQUE INDEX `Media_mdmId_version_key` ON `Media`(`mdmId` ASC, `version` ASC);
version
컬럼을 다시 추가하더라도 데이터는 [documentId
, version
]이 unique하게 다시 채울 수 없음.Option 2. 문제 고치고 일부만 적용된 실패한 마이그레이션 마저 적용하기
migrate dev 명령은 로컬에서만 실행하기로 돼 있어서 이것저것 해 주는 게 많다 보니 사용하는 DB 계정에게도 상당한 권한을 부여해야 한다. 동작 방식이 shadow database(Schema)를 추가로 만들어서 비교하는 등 써먹은 후 삭제하고 그런 식이기 때문에, 평소에 사용 중인 DB(Schema)에 대한 권한만 부여하면 에러가 뿜뿜한다.(일단 CREATE
, DROP
을 global로 주지 않으면 shadow database를 만들고 삭제할 수 없으니 그렇고 그 외에도 최소한 ALTER
, REFERENCES
, INDEX
는 필요)
참고: https://www.prisma.io/docs/guides/database/production-troubleshooting