2월 10, 2024

[django] no such table 에러 해결법

django에서 python manage.py runserver를 한 뒤에 결과를 확인해보면 가끔 no such table 에러가 뜨는 경우가 있다. 

migrate가 문제인가 하여 

python manage.py makemigrations
python manage.py migrate

를 둘 다 해봐도 똑같은 에러가 떴다.


매번 해당 에러에 대해서 해결되었던 방법은 migrate할 때 아래와 같은 코드로 실행하는 것이다.

python manage.py migrate --run-syncdb

syncdb라는 것은 settings.py의 Installed apps에서 추가된 앱에 대한 테이블을 처음 db에 만들어주는 command라고 생각할 수 있다. 

 

에러의 메세지가 말하는 것처럼 DB에 해당 table이 없기 때문에 생기는 에러기 때문에 mirgate를 할 때 위 command처럼 --run-syncdb를 붙여서 실행해준 다음 다시 

python manage.py runserver

를 해주면 에러가 해결되는 것을 알 수 있다.