2

我遇到了与South 在不同应用程序中遵循什么迁移顺序类似的问题?,其中来自不同应用程序(例如 app_a 和 app_b)的迁移必须交错才能工作,但默认情况下,South 首先运行来自 app_a 的所有迁移,然后运行来自 app_b 的所有迁移。

我知道有一种方法可以手动指定依赖项以使其工作,但这似乎没有必要,因为 South 可以记录迁移运行方式的全局顺序,因此它可以根据它们过去的实际交错方式来交错它们。

那么,有没有一种好方法可以让 South 记住您的全球迁移历史并自动设置依赖关系?

4

1 回答 1

2

我不认为这是必要的:记录迁移的运行顺序会引入比需要更多的依赖项(因为大多数应用程序迁移可以 - 并且应该 - 独立于其他应用程序运行)。您只需要自己指定依赖项,因为您知道哪些依赖项需要先于其他依赖项。

此外,迁移运行的顺序并不真正“存在”:只有多个数据库(本地、开发、生产)和一组应用程序,每个应用程序都有一些迁移。这些迁移只需要运行,并且您需要尽可能少的依赖项。指定所有迁移需要运行的特定顺序是不必要的限制。

如果另一个开发人员决定以不同的顺序迁移应用程序,那么这应该是可能的。唯一的限制应该是您使用depends_on指定的硬依赖项。

现在可能需要更多的体力劳动,但是如果您的应用程序不是太交织在一起,那么您的应用程序之间就不应该有太多的依赖关系。如果你这样做了,那么你可能需要考虑合并这些应用程序,因为它们比你想象的更相关?

于 2012-08-24T14:52:16.623 回答