0

我正在尝试以迁移目录的位置在 Django 目录之外的方式设置 South。我可以使用 SOUT_MIGRATION_MODULES 来更改 Django 中目录的位置(到每个有 init 文件的地方),但这对我来说还不够。不幸的是, SOUT_MIGRATION_MODULES 不接受完整路径作为输入。

谁能解释我如何让 South 将迁移目录放置到 Django 目录之外的指定路径?

更新: 这是当前目录结构:

  • 数据
  • Django 项目
    • 项目名称
      • 设置.py
    • Django 应用程序
      • 迁移

理想情况下,我希望将迁移文件夹放在 Data 目录中,该目录位于整个 django 项目之外。

4

1 回答 1

2

由于它需要任何模块,只需在项目之外创建一个模块并将其添加到您的 python 路径中,例如:

SOUTH_MIGRATION_MODULES = {
    'blog': '<my_foreign_module>.migrations.blog',
}

另一种方法是修改 South 的Migrations课程,但实际上,你应该避免这种黑客行为。

from south.migration.base import Migrations

def migrations_dir(self):
    return #my_ugly_hack

Migrations.migrations_dir = migrations_dir
于 2013-09-03T15:14:45.637 回答