[Django][error]makemigrations는 되는데 migrate가 안 될 때

김예진·2020년 11월 22일
0

Django

목록 보기
8/10

model을 수정한 뒤에 python manage.py makemigrations , python manage.py migrate을 진행했는데

_mysql_exceptions.OperationalError: (1060, "Duplicate column name 'description'")

column 이름이 중복이라는 에러 메세지를 만났다. 중복이 없는데 왜지.. 왜일까 고민했는데 답을 찾을 수 없었다. 이전에 1차 프로젝트 때 migrations 파일을 지우고 문제가 되어서 git revert를 했을 때가 생각나서 함부로 migrations 파일을 지우는 건 안 될 것 같아서 다른 방법들을 찾으려고 했는데

...??? deleting....the DB?......and all migrations...? 지우라고여? 저번에도 지우고 잘못돼서 revert를 했는데 이번에도 그렇게 되는 거 아니야? 내가 혹시 영어를 잘 못 읽고있나? 번역기...번역기...번역기...

....지우라고 하는게 맞네?

조심조심 구글링을 하면서 지워도 되는 파일들을 지우고(마이그레이션 디렉토리 안에 모든 파일을 init.py 모듈 빼고 싹 지운다!) 다시 makemigrations 후에 migrate를 했는데 똑같은 에러메세지가 또 생겼다.

결론적으로는,

- DB에 저장된 데이터가 별로 없을 경우에는 DB도 삭제하고, migrations 파일도 지우고 새롭게 시작하는 것이 제일 빠르다.

- DB에 저장된 데이터가 많고, 함부로 삭제하면 안되는 경우에는 migrations파일에서 수정해주는 방법이 있다.

이번의 경우에는

앱이름/migrations/0001_inital.py에서

중복이라고 뜨는 description자체를 추가해주었다. (이후에 start_date, end_date, employee도 에러가 떠서 한꺼번에 다 추가해주었다.)

migrations 파일은 함부로 삭제하거나 수정하면 안되는 줄 알았는데 그건 또 아니었다.. 대신 좀 조심히 살펴보면서 수정해주면 되겠구나 싶었다.

profile
Backend Developer 🌱 벨로그 내용을 티스토리로 이사중~!

0개의 댓글