❌ UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 0-1: invalid continuation byte
✅ 터미널에 export PYTHONIOENCODING="UTF-8";
❌django.db.utils.DatabaseError: database disk image is malformed
✅ 장고 개발을 하다보면 db를 갈아 엎어야하는일이 가끔 존재하는데
장고field들을 건들이지 않고 그대로 존재하면
python manage.py makemigrations
python manage.py migrate로 버전별로 생성이 가능하지만..
가끔은 모든 db내용을 삭제 할 필요가 생기는 경우가 있다..
나같은 경우는 db를 3번째 갈아 엎는데 새로운 모델이 추가 되다 보니 이미 db에 존재하는 데이터들이랑 충돌이 나는 경우가 생겨서.. db를 지웠다...
1-0. 수정하려는 폴더의 migrations 에 init.py를 제외하고 전부 삭제해라
find . -path "/migrations/.py" -not -name "init.py" -delete
find . -path "/migrations/.pyc" -delete
이 2개의 명령어를 이용해서 삭제하는 방법도 있지만
나의 경우는 그냥 폴더에 들어가서 삭제했다. -> 이방법은 내가 몇개 안적어서 가능함
1-1. db.sqlite3를 삭제해라
python manage.py runserver를 하고 있으면 삭제가 안되므로 종료후 삭제해라.
이걸 삭제안하면 아무리 migration파일들을 삭제했다 해도
1-2. 새로운db 파일을 생성해라
python manage.py makemigrations
python manage.py migrate
를 진행하면 완성이 된다.
python manage.py runserver 하고 admin에 들어가서 내용을 확인하고 싶으면
실제로 db를 확인하고 싶다면
2-1. app폴더의 admin에 모델을 추가하기
이렇게 추가해두고
2-2. 장고 관리자를 추가하기
python manage.py createsuperuser
댓글