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 옵션 : 마이그레이션 하지않고 테이블을 만든다.

 

 

해당 명령어를 실행하니 말끔이 해결 되었다.