我最近开始在我的Django项目中使用South进行迁移。直到最近,当我遇到一个奇怪的问题时,一切进展顺利。South在不同的应用程序中遵循什么迁移顺序?
我在我的项目中有两个应用程序,比如App-A和App-B。 App-A中的模型具有App-B中模型的外键。当我尝试构建我的系统时,我运行了syndb
,它创建了所有auth_
和south_
表。然后我跑了migrate
这引发了错误。当它试图从引用App-B模型的App-A创建模型时,模型App-B尚未迁移/创建,因此也是错误。
为了解决这个问题,我必须先手动迁移App-B,然后再App-A。我在这里做错了什么? South应该如何知道跨应用程序的迁移顺序?
谢谢。
刚上投这一点,因为这其实是非常重要的。'depends_on'和'needed_by'似乎只控制实际的迁移。如果你刚开始迁移时,就像我的情况一样,South将在迁移完成后尝试加载应用程序的初始数据。我遇到了应用程序的初始da在另一个人需要它并遇到外键问题之前,它们并不可用。我可以通过重新订购INSTALLED_APPS中的应用程序来解决此问题。South运行应用程序的顺序是它们在'INSTALLED_APPS'中暂停运行任何迁移依赖关系。 – jaywhy13