首页 文章

在Django 1.7迁移之前运行South迁移的推荐方法是什么?

提问于
浏览
6

我有一些包含大量南迁移的项目,包括那些需要按特定顺序运行的大量自定义SQL的项目 . 升级到Django 1.7后,这是关于如何将项目转换为使用South(来自Django documentation)的建议:

如果您已经使用South创建了预先存在的迁移,则使用django.db.migrations的升级过程非常简单:确保所有安装都与其迁移完全保持同步 . 从INSTALLED_APPS中删除“south” . 删除所有(编号)迁移文件,但不删除目录或__init__.py - 确保也删除.pyc文件 . 运行python manage.py makemigrations . Django应该看到空的迁移目录并以新格式进行新的初始迁移 . 运行python manage.py migrate . Django将看到初始迁移的表已经存在,并将它们标记为已应用而不运行它们 .

简而言之,“擦除您现有的迁移,Django将负责其余的” .

这里没有提到的是当现有的南迁移不仅包括模型更改,而是包含需要按顺序运行的直接SQL,数据迁移等时该怎么办 . 在这种情况下,自动生成的Django迁移将遗漏很多东西,因为并不是所有这些变化都可以从内省模型文件中看出来 .

理想情况下,可以使用South运行现有的迁移,然后让Django迁移接管 . 什么是最好的方法呢?如果这是不可能或非常不推荐,最好的选择是什么?

1 回答

  • 3

    也许这个post可以帮到你 . 基本上你必须:

    • 将当前的迁移目录从'migrations'更改为'south_migrations'

    • 使用此行更新您的设置

    SOUTH_MIGRATION_MODULES = {'your_app':'your_project.your_app.south_migrations',}

相关问题