0

移行ディレクトリの場所が Django ディレクトリの外になるように South をセットアップしようとしています。SOUT_MIGRATION_MODULES を使用して、Django 内のディレクトリの場所を (init ファイルのあるすべての場所に) 変更できますが、それだけでは十分ではありません。残念ながら、SOUT_MIGRATION_MODULES は入力としてフル パスを受け入れません。

South に移行ディレクトリを Django ディレクトリの外の指定されたパスに配置する方法を説明できる人はいますか?

更新: これは現在のディレクトリ構造です。

  • データ
  • ジャンゴプロジェクト
    • プロジェクト名
      • 設定.py
    • ジャンゴアプリ
      • 移行

理想的には、django プロジェクト全体の外にある Data ディレクトリに migrations フォルダーを配置することを南に望みます。

4

1 に答える 1

2

任意のモジュールを使用するため、プロジェクトの外部にモジュールを作成し、それを Python パスに追加するだけです。

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

もう 1 つの方法は、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 に答える