django Table doesn't exist


1146 django Table '' doesn't exist
 
一:出錯原因
 
手動在數據庫中drop了一張表,重新執行 python manage.py migrate時出錯,提示不存在這張表
django一般在第一次遷移的時候新建表,后面的都不會新建表,只檢查字段等等的變化,既然已經刪除了這張表, django檢查這張表的字段變化的時候就自然報錯了
 
二:解決方案
 
清空遷移文件 rm -rf app/migrations/* (app對應表所在模塊兒)
先 python manage.py makemigrations app 生成遷移文件
然后
刪除vim app/migrations/0001_initial.py 對應創建表的字段

        migrations.CreateModel(

            name='table',

            fields=[

                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),

               .....

            ],  

            options={

              ...

            },  

        ),

最后
python manage.py makemigrations
python manage.py migrate
 
三:其他技巧
 
如果表改動較大,現存測試數據不太重要,遷移出錯時,可以主動刪除數據庫這張表然后通過上面的操作再創建,免得麻煩。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM