Django南迁移目录在django项目之外

时间:2013-09-03 15:12:54

标签: django django-south

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

有人可以解释我如何让South将迁移目录放到Django目录之外的指定路径上吗?

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

  • 数据
  • Django项目
    • 项目名称
      • settings.py
    • Django app
      • 迁移

Idealy我希望南方将迁移文件夹放在Data目录中,该目录位于整个django项目之外。

1 个答案:

答案 0 :(得分:2)

当需要任何模块时,只需在项目外创建一个模块并将其添加到python路径,例如:

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

另一种方法是修补南方的Migrations课程,但实际上,你应该避免这种hackery。

from south.migration.base import Migrations

def migrations_dir(self):
    return #my_ugly_hack

Migrations.migrations_dir = migrations_dir