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 = '마이그레이션 파일 이름';
위 쿼리를 실행해서 마이그레이션이 적용을 반영했다.
재실행해보니 마이그레이션이 정상적으로 됐다~_~