django資料遷移命令執行成功,但未在資料庫中生成表
阿新 • • 發佈:2018-11-28
場景:
因資料庫預設字符集不是utf8,當上傳中文字元時報錯。
處理過程中刪除了原資料表,重新遷移,資料庫表未能建立
解決步驟:
- 修改資料庫中相應表的字符集,上傳資料失敗。
- 修改整個資料庫的字符集,上傳資料失敗。
- 修改mysql配置檔案/etc/my.cnf.d/server.cnf,重啟資料庫,上傳資料失敗。
因表中無重要資料,故刪除相應的表。再重新遷移。此時問題出現。
1、執行python manage.py makemigrations :未報錯,但是已經建立過一次,故沒有任何改變
2、執行python manage.py migrate :未報錯,但是資料庫中未能重新生成表
3、重試幾次無果後,以為是資料庫下django_migrations表因上一次資料遷移提交已記錄,且此次models表未做改變。忽略了此次提交(第15行欄位被刪除, 第16行是遷移成功後重新建立了表後新增)
4、重新執行python manage.py makemigrations 和 python manage.py migrate。無報錯資訊。但建立失敗。
5、刪除post應用下 migrations資料夾。執行python manage.py makemigrations。遷移資料夾migrations 未能重新建立
6、執行python manage.py makemigrations post 指定應用,post/migrations 遷移資料夾生成成功。
7、python manage.py migrate 資料庫表建立成功。
8、前端重新測試提交中文資料,資料提交成功