使用South和Django 1.7迁移的可重用应用程序的升级路径

时间:2014-03-23 21:22:53

标签: python django django-models django-south

或者: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了吗?

3 个答案:

答案 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)中的设置都允许您指定具有迁移的模块。所以你有两个选择:

  • 将Django 1.7迁移到新文件夹,让Django 1.7用户知道他们应该将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迁移。我知道它不是你要求的,但它似乎是唯一的方法。