【问题标题】:Django South migrations directory outside django projectDjango 项目外的 Django South 迁移目录
【发布时间】:2013-09-03 15:12:54
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: django django-south


    【解决方案1】:

    由于它需要 任何 模块,只需在您的项目之外创建一个模块并将其添加到您的 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
    

    【讨论】:

    • 我一直在玩这个,但我没有让它工作。我已将目录结构放在原始帖子中作为说明。
    • 您是否在数据目录中创建了一个 init 文件并相应地将其添加到您的 python 路径中?
    • 我做了,我想这与我使用的服务器有关。
    猜你喜欢
    • 2015-06-03
    • 2011-01-27
    • 1970-01-01
    • 2012-08-06
    • 2012-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-11
    相关资源
    最近更新 更多