조졌다 서버가 터졌다
디비 모델을 바꾸다가 실수로 디폴트값을 없애면 이미 남아있는 이미 웹페이지에 등록되어 있는 데이터베이스들이 있을 텐데 거기서 깨지는 경우가 몇가지 있다. 그런경우 뜨게 된다면 500 서버에러가 뜨게 될것이다. 라고 누가 말하고 갔는데 그 경우인 것 같다.
500 서버에러의 큰 이유 2가지)
1. 로컬에서 그 환경을 확인해봐라. 그럼 똑같이 깨질 확률이 일단 높다. django에서 나타나는 에러페이지를 디버그를 꺼놨기 때문에 보이지는 않지만 그걸 나타내는게 500에러인데
생각해보니까 전에 오커넥트 디플로이할때 500에러를 만난적이 있다. 해당 경우가 이 경우였는데 이건 로컬에서 테스트하고 올린건데 음
-> 일단 그 이미지를 날려라. 그 이미지에 버그가 있다는거니까 날리고 이미지 버전을 낮추어라.
2. 데이터베이스가 깨지는 경우
postgresql들어가서 table확인
우선 버전을 낮추고 해결부터하자
이전버전의 도커이미지로 우선 복구를 해두었다.
어떤 가능성이 있을지 생각을 해보려한다.
1. 깃허브 푸시할때 문제가 좀 있어서 정신없는 방법으로 푸시를 하기는 했다. 과정에서 뭔가 잘못되었고 현재 로컬의 환경과 서버상의 환경이 다를수 있다.
2. 이전의 db와 충돌발생가능성
아직 모르겠는데 blank=False로 된 새로운 db조건을 이전 데이터가 만족하지 못해 충돌이 생겼을 수 있다. 로컬에서 드문드문 발생했던 문제이며 테스트과정에서 이를 확인하지 못했을 수 있다.
3.
방금 생각났는데 debug true로 잠깐 배포해서 어떤 로그를 뱉어내는지 이따 확인해볼것.
하지말래서 안했다.
* 생각해보니까 .ignore에 migrations 가 있어서 지우고 다시 시도해본다.
1번이 정답이었다. migrations가 지저분해서 deploy repo에 올리지 말아야겠다 생각했는데 당연히 그러면 안됐다. 그냥 deploy repo는 migrate를 하지말던지 해야겠다.
'웹 프로그래밍' 카테고리의 다른 글
(Error) HTTPS/SSL 적용 (Let's encrypt) - 2 , nginx (1) | 2021.09.07 |
---|---|
DNS의 개념 (feat. Route53 왜 쓰는가) (1) | 2021.09.04 |
Docker Error (file not found or excluded by .dockerignore) (0) | 2021.09.01 |
HTTPS/SSL 적용 (Let's encrypt) (0) | 2021.08.31 |
Real-time Django with Channels (0) | 2021.08.15 |