我正在尝试以迁移目录位于Django目录之外的方式设置South。我可以使用SOUT_MIGRATION_MODULES来改变Django中目录的位置(使用init文件到每个地方),但这对我来说还不够。不幸的是,SOUT_MIGRATION_MODULES不接受完整路径作为输入。
有人可以解释我如何让South将迁移目录放到Django目录之外的指定路径上吗?
更新 这是当前的目录结构:
Idealy我希望南方将迁移文件夹放在Data目录中,该目录位于整个django项目之外。
答案 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