我不小心在Django 1.7项目中放了一张桌子。我跑了makemigrations
& migrate
。两个命令都没有识别出表已丢失。所以他们没有任何影响。
我应该删除模型的代码,进行迁移,添加模型和代码的代码。再次迁移?还是有更好的方法来恢复它?
答案 0 :(得分:18)
试试这个:
python manage.py sqlmigrate app_name 0001 | python manage.py dbshell
它将初始应用程序迁移的输出传递给dbshell,后者执行它。如果您想要更好地控制发生的事情,请分两步拆分并复制/粘贴SQL命令。
当然,迁移包含所有应用程序表的单个事务,因此如果只有一个表缺失(来自多模型应用程序),则您只需手动选择你要重新创建的表。