Open Zena0128 opened 3 weeks ago
잘 되는 줄 알았는데.... game progress 타임라인만 존재하면 잘 되는데 교체나 득점 타임라인 존재 시 여전히 오류나네용,,
교체, 득점 타임라인도 LineupPlayer와 갖는 fk 때문에 발생하는 오류여서 원래 있던 관련 제약조건들 다 drop 후
ALTER TABLE timelines
ADD CONSTRAINT FK_TIMELINES_ON_ORIGIN_LINEUP_PLAYER FOREIGN KEY (origin_lineup_player_id) REFERENCES lineup_players(id) ON DELETE CASCADE;
ALTER TABLE timelines
ADD CONSTRAINT FK_TIMELINES_ON_REPLACED_LINEUP_PLAYER FOREIGN KEY (replaced_lineup_player_id) REFERENCES lineup_players(id) ON DELETE CASCADE;
ALTER TABLE timeliness
ADD CONSTRAINT FK_TIMELINES_ON_SCORER FOREIGN KEY (scorere_id) REFERENCES lineup_players(id) ON DELETE CASCADE;
쿼리 실행하니 서비스 상에서는 잘 되어여
@OnDelete
가 다 먹지 않았던 듯 합미당
다만 테스트코드에서는 자꾸 제약조건이 걸려 실패하는디... 아직 캐시때문에 제대로 업데이트가 안 된 것인지..? 확인 필요
생각해보니 테스트코드는 테스트디비 위에서 돌아가서 그랬겠군여,,, 근데 테스트디비에 제약조건 어케 거는지는 잘 몰라서 회의 때 마저 얘기해보면 좋겠습니당 ㅠ
@OnDelete
는 부모를 먼저 삭제한 후, 해당 부모를 참조하는 자식들 삭제 ⇒ 직접 데이터베이스에 on delete cascade를 걸어주지 않으면 참조 무결성 제약을 위반해 오류 발생!