或者:Django 1.7用户还可以使用South吗?
我是可重复使用的应用的维护者。我们的政策是始终支持最新的两个版本的Django。我们有一系列广泛的南迁移,我们希望继续支持新的Django 1.7迁移系统。
我与之混淆的是如何让开发人员在Django 1.6(和South)和Django 1.7(新迁移)中使用我的应用程序。
Django文档建议just deleting all the pre-existing South migrations。但这不是一个选择,因为我需要为我的Django 1.6用户保留它们。
最接近我可以提出的升级路径,直到我在我的应用程序中放弃对Django< 1.7的支持时才使用新的迁移系统(所以当Django 1.8出来时)。但是与migrate命令的命名冲突呢?南方系统和新系统都使用python manage.py migrate
来运行迁移。那么Django 1.7用户不能再使用South了吗?
答案 0 :(得分:7)
South 1.0 提供了解决方案。它将首先显示在south_migrations/
文件夹中并回溯到migrations/
。因此,在第三方库需要支持较旧和较新的Djangos的情况下:将South文件移至south_migration/
并在migrations/
中创建新的1.7迁移。
South不能与Django 1.7一起使用,但这对最终用户来说不是问题。他们要么使用新的Django,要么使用较旧的Djangos和South 1.0。将不会有南2.0,它将支持新的1.7式迁移。另外@ Ondrej的回答是正确的,只是它是在South 1.0发布之前编写的,所以当时的事实(仅仅几个月前)只包含了解决方法。
答案 1 :(得分:2)
Django(MIGRATION_MODULES
)和南方(SOUTH_MIGRATION_MODULES
)中的设置都允许您指定具有迁移的模块。所以你有两个选择:
MIGRATION_MODULES
设置为给定的文件夹。SOUTH_MIGRATION_MODULES
设置为指定文件夹以继续使用。Here's an article描述或多或少相同。加上an app已经进行了更改以支持South和Django 1.7。
答案 2 :(得分:0)
嗯,我认为你很幸运,如果你转到kickstarter page你看到它的资金(17,952英镑)允许7,000多个任务,包括:
南方新主要版本的关键功能的后退,以支持Django 1.4和1.5上的那些
所以,如果你愿意,你可以升级你的1.6南至至少匹配django迁移。我知道它不是你要求的,但它似乎是唯一的方法。