提问人:dabadaba 提问时间:10/28/2016 最后编辑:Risadinhadabadaba 更新时间:10/28/2016 访问量:2435
Django:中断的迁移
Django: broken migrations
问:
我正在尝试在新机器中本地设置一个 Django 应用程序,但迁移似乎完全被破坏了。它们需要按照特定的顺序执行,这在我几个月前设置环境的第一台机器中是有效的,但现在存在不一致(尽管我很确定没有生成新的迁移)。
因此,我能想到的唯一解决方案是将数据库从正在工作的旧机器导出到新机器。那行得通吗?
这不会解决损坏的迁移问题,但至少我可以处理代码,直到找到适当的解决方案。
答:
0赞
Risadinha
10/28/2016
#1
回答这个问题:
因此,我能想到的唯一解决方案是将数据库从正在工作的旧机器导出到新机器。那行得通吗?
是的,如果您确定数据库与模型同步,则可以这样做。如果您想为更新生产环境做好最好的准备,这实际上是要走的路。
- 从当前生产计算机获取转储
- 创建新数据库并加载转储
- 检查模型和迁移历史之间是否存在差异(这在新的 Django 迁移中更可靠,South 是一个外部工具,并且没有所有的可能性)(例如 (1.10)、(1.7-1.9 和南部)
./manage.py showmigrations
./manage.py migrate --list
- 如果您确信无需运行任何迁移,但列表显示差异,请执行以下操作:
./manage.py migrate --fake
请注意,在较新的版本中,您可以这样做,如果模型和迁移同步,它将报告一切都井井有条。在部署到生产环境之前,这可能是一次健全性检查。./manage.py migrate
评论
makemigrations
python manage.py makemigrations
makemigrations