Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

flyway 문제 발생 해결 #440

Merged
merged 3 commits into from
Sep 22, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
alter table chat_room_report drop foreign key fk_chat_room_report_auction;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

제가 리뷰를 다는 사이에 스크립트가 추가되어 해당 부분에도 코멘트를 남기도록 하겠습니다

현재
alter table chat_room_report drop foreign key fk_chat_room_report_auction;
alter table chat_room_report drop index fk_chat_room_report_auction;
를 수행하고 있는 mysql 8.0에서는 외래 키 또한 인덱스로 설정합니다
그래서 show index from 테이블명으로 확인하면 외래 키까지 같이 확인이 가능합니다

그래서 결국 두 가지 명령어 모두 동일한 내용을 수행하고 있다고 보시면 될 것 같습니다

Copy link
Member Author

@JJ503 JJ503 Sep 22, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

흠... 그런데 해당 sql 코드를 통해 삭제되는 것을 확인했음에도 잘못된 코드인가요?
image

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

해당 쿼리를 테스트한 환경이 어디인가요?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

개발 서버에서도 확인했었고, 마지막으로 운영 서버를 이전 버전으로 맞추면서 다시 한 번 확인했습니다.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

좋습니다 전 안되던데 왜 저렇게 되는지 모르겠군요 그럼 Approve로 변경하도록 하겠습니다

alter table chat_room_report drop index fk_chat_room_report_auction;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

지금 로그에서 발생한 문제상황은
alter table chat_room_report drop index fk_chat_room_report_auction; 실행 시 fk_chat_room_report_auctionfk이고, 테이블 생성 과정에서 fkconstraint로 직접 제약조건을 명시적으로 선언해서 발생한 이슈라고 봐주시면 될 것 같습니다

그래서 로그를 확인해보시면 needed in a foreign key constraint라는 문구를 볼 수 있는데, 이건 constraint(제약조건)으로 외래 키 조건을 걸었으므로 이 외래 키는 무조건 필요하다라는 의미라고 보시면 될 것 같습니다

그러므로 drop index 전에 제약조건을 삭제하는 과정을 추가해주시면 될 것 같습니다

alter table chat_room_report add constraint fk_chat_room_report_chat_room foreign key (chat_room_id) references chat_room (id);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이건 어떠한 의도인지 잘 모르겠습니다

지금 문제는 Cannot drop index 'fk_chat_room_report_auction': needed in a foreign key constraint로 문제가 발생하고 있는데
지금 목표가 fk_chat_room_report_auction라는 이름의 인덱스(외래 키)를 삭제하고 다른 값을 지정해주는게 아니었나요?

현재 develop-be에서는 fk_chat_room_report_auction를 삭제하고 fk_chat_room_report_chat_room를 추가하고 있는 과정인데, 삭제하는 과정에서 문제가 생겼으니 fk_chat_room_report_auction를 정상적으로 삭제하는 내용을 추가해야 할 것 같습니다

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

하지만 그러기 위해선 이미 DB에서 삭제하신 fk_chat_room_report_auction를 다시 추가해야 하는데 그러시길 바라는 것일까요?
이미 지토가 해당 fk를 삭제한 시점에서 위와 같은 스크립트를 기대한다 이해했습니다.

Copy link
Collaborator

@apptie apptie Sep 22, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

넵 맞습니다
버전 13을 해결하는 과정이 버전 14에서 모두 표현되어야 한다는 말씀을 드리고 싶었습니다

Copy link
Member Author

@JJ503 JJ503 Sep 22, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

답변 감사합니다.
결론적으로는 문제가 되는 상황과 원인 및 해결 방법에 대해 파악한 후 DB 자체는 다시 이전 버전이 수행된 상태로 되돌려 둔 후, 그에 맞춰 14버전 스크립트를 수정하도록 하겠습니다.

Loading