2016-08-29 4 views
1

外部キーを別のモデルに変更し、既存のインスタンスのすべての外部キーを新しいモデルpkに変更する必要があるデータ移行に取り組んでいます。私はこれがDjangoのデータ移行で達成できると思います。私の質問は次のとおりです。Djangoでのデータ移行以前のモデルバージョンを取得する

¿データ移行を実行するには、以前のバージョンのモデルにどのようにアクセスできますか?

私はこのような何かをしたいと思います:

MyPreviousModel = previousModels.MyModel 

ModelAfterMigration = afterMigrations.MyModel 

all_previous = MyPreviousModel.objects.all() 

for element in all_previous: 
    element.previous_fk = new_foreignKey 
    ModelAfterMigrations.create(element) 

答えて

1

は、モデルではなく、import文を取得するには、バージョンのアプリレジストリを使用してください。

def my_migration(apps, schema_editor): 
    MyModel = apps.get_model("my_app", "MyModel") 

移行ワーカー関数に渡される最初の引数は、あなたの歴史の中で、移行が座っている場所と一致するようにロードされたすべてのモデルの履歴バージョンを持っているアプリレジストリです。

+0

ありがとう、私はこれが私の必要なものだと思います!私は最初の議論に関するいくつかの質問があります。どのようなアプリレジストリを持っているのですか?各移行時にレジストリが生成されますか?どのように各レジストリを識別できますか? –

関連する問題