갑자기 REST Docs 문서에 502에러가 난다는 소식을 듣고 서버를 살펴보니 flyway 문제로 서버가 내려간 상태였다.
Caused by: org.flywaydb.core.api.FlywayException: Found more than one migration with version 23
위의 에러 메시지를 확인하고 스크립트 확인을 해보니
V23, V24버전의 스크립트가 중복된 상태... 아무래도 여러사람이 협업을 하고 빠르게 개발, 코드리뷰, 머지를 하다보니 다른 팀원들도 스크립트 버전이 중복된다는 사실을 모르고 approve한 것 같다.
심지어 flyway스크립트에 문제가 생기면 서버가 내려감에도 불구하고 git action에서는 flyway문제가 안걸림...
실제로 스크립트가 중복되어서 문제가 생긴 pr인데 보다시피 git action은 통과가 되어있는 상태이다.
그리고 팀원들의 말을 들어보니 로컬에서도 flyway 문제 때문에 실행자체가 안되는 경우가 많아 다들 로컬에서 flyway를 꺼두고 개발을 한다고 한다(사실 나도 그럼) 그렇다보니 더 문제 발견이 늦는 것 같다.
💡 flyway_schema_history 테이블이란?
Flyway 데이터베이스 마이그레이션 도구에서 사용하는 중요한 구성 요소.
이 테이블은 Flyway가 데이터베이스 스키마를 버전 관리하는 데 사용하며, 데이터베이스에 적용된 모든 마이그레이션의 이력을 저장한다.
그래야 flyway가 수정된 스크립트를 기반으로 새로 데이터베이스를 생성, 관리해줌
(테이블 삭제 안하면 flyway가 스크립트에 맞춰서 테이블을 생성하려는데 이미 해당 테이블이 있다는 에러 메세지가 뜬다...)
수정한 스크립트를 커밋, 푸쉬, 배포
해결~