我对如何在某些特定的团队工作流程中使用 south 感兴趣。我们的团队拥有适用于所有开发环境的单一数据库。因此,例如:一位开发人员开始在新分支中编写一些特性,而这个特性需要一些数据库迁移。他们根据需要与 South 进行初始/后续迁移。此时,South_migrationhistory 表中的 DB 中有特定的行。假设它看起来像
10 app1_name 0001_initial <timestamp>
11 app1_name 0002_needed_changes <timestamp>
在这一点上,这个新的特性分支没有在任何地方合并,甚至没有推送到原始仓库,所以除了单个开发人员之外没有人知道代码中的这种变化。
同时,还有另一个开发人员实现了一些其他需要迁移的功能(甚至对于其他 django 应用程序)。当此开发人员尝试进行所需的迁移时,他们将面临 South 的问题,因为存在具有初始迁移(由第一个开发人员进行)的现有数据库行,但 VCS 中还没有实际的迁移。这种情况产生
$ manage.py convert_to_south app2
....
south.exceptions.NoMigrations: Application '<module 'apps.app1' from '/home/user/dev/apps/app1/__init__.pyc'>' has no migrations.
这种工作流程是否有任何解决方案,或者只需要更改?