FrameWork/Django
ERROR : django.db.utils.OperationalError: no such table 오류 해결
jheaon
2023. 2. 19. 20:23
상황
pycharm 한번 써볼려고 vsc에서 환경을 옮겼다가 다시 vsc로 돌아왔는데, pycharm에서 python manage.py migrate 해서 문제가 난 모양이었다. 일단 이것 때문에 난생 처음으로 git reset --commit version 해서 돌아가기 까지 했었는데, 근본적으로 5시간 정도 고쳐지지 않아서 해매다 해결방법을 찾았다.
해결
일반적인 해결방법으로는 마이그레이션 디렉토리에 있는 파일들과 db.sqlite3 파일을 지워준다.
# db.sqlite3은 수동 삭제 요망
find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc" -delete
그리고 아래 명령어를 입력해준다.
python manage.py makemigrations
python manage.py migrate
하지만 나는 해당 방법도 되지 않아서 내 소스코드 자체의 문제인가 했었는데, 다음과 같은 방법은 사용하니 해결되었다.
일반적으로 위에있는 마이그레이션 디렉토리에 있는 파일과, db.sqlite3을 삭제해주고 다음과 같은 옵션을 넣어 명령어를 실행한다.
python manage.py migrate --run-syncdb
🔖--run-syncdb 옵션 : 마이그레이션 하지않고 테이블을 만든다.
해당 명령어를 실행하니 말끔이 해결 되었다.