docker 환경에서 prisma migration 에러 해결

숭글·2024년 10월 29일

DB에 새로 생긴 테이블이 반영이 안돼있어 prisma 로그를 확인해보니

4 migrations found in prisma/migrations

Error: P3009

migrate found failed migrations in the target database, new migrations will not be applied. Read more about how to resolve migration issues in a production database: https://pris.ly/d/migrate-resolve
The 마이그레이션파일이름 migration started at 2024-10-28 05:50:58.804 UTC failed

위와 같은 에러가 발생했다.

스크립트 실행 중 에러가 발생했다 생각해서
mysql에 쿼리를 한 줄 한 줄 입력해봤는데
실패했다는 스크립트 안 쿼리가 모두 정상적으로 입력이 됐다.

ㅇ0ㅇ

prisma에서 마이그레이션 파일이 성공, 완료했다는 게 반영이 안된거였다.

같은 환경이었다면

npx prisma migrate resolve --applied 마이그레이션파일이름

했겠지만 도커 환경이라
prisma, mysql, nestJs의 환경이 모두 분리돼있었다.

prisma는 에러가 발생해 계속 재실행중이었고..

결국 직접 prisma 테이블을 수정했다.

mysql 환경에 접속해서

docker exec -it [mysql 도커 id] /bin/bash 

(/bin/bash or mysql -u... -p)

UPDATE _prisma_migrations 
SET applied_steps_count = 1, 
    finished_at = NOW() 
WHERE migration_name = '마이그레이션 파일 이름';

위 쿼리를 실행해서 마이그레이션이 적용을 반영했다.

재실행해보니 마이그레이션이 정상적으로 됐다~_~

profile
Hi!😁 I'm Soongle. Welcome to my Velog!!!

0개의 댓글