Django:破坏的迁移

时间:2016-10-27 16:01:11

标签: python django python-2.7 django-south django-1.4

我正在尝试在新机器中本地设置Django应用程序,但迁移似乎完全被破坏了。它们需要以特定的顺序执行,这在几个月前设置环境的第一台机器中运行,但现在存在不一致性(尽管我很确定没有生成新的迁移)。

因此,我能想到的唯一解决方案是将数据库从旧机器运行到新机器。那会有用吗?

这不会解决破坏的迁移问题,但至少我可以处理代码,直到有适当的解决方案。

1 个答案:

答案 0 :(得分:0)

回答这个问题:

  

因此,我能想到的唯一解决方案是将数据库从旧机器运行到新机器。那会有用吗?

是的,如果您确定数据库与模型同步,则可以使用此功能。如果您想为更新生产环境做好最充分的准备,那么这实际上就是您的选择。

  1. 从当前生产机器获取转储
  2. 创建新数据库并加载转储
  3. 检查模型和迁移历史记录之间是否存在差异(对于新的Django迁移,这是更可靠的,南方是一个外部工具并没有所有可能性)(例如./manage.py showmigrations(1.10), ./manage.py migrate --list(1.7-1.9和南方)
  4. 如果您确信不必运行迁移但列表显示差异,请执行以下操作:./manage.py migrate --fake
  5. 请注意,在较新的版本中,您可以执行./manage.py migrate,如果模型和迁移同步,它将报告所有内容都已按顺序排列。在部署到生产环境之前,这可以是一个完整性检查。