私たちは皆、django での南部への移行が大好きです。通常、最初に使用convert_to_south
してからモデル クラスを変更し、次に実行schemamigration
して実行します。migrate
次のシナリオが誰かに起こったかどうかはわかりません。プロジェクトはバージョン管理下で追跡されていません (git stash はすばらしいでしょう)。モデル クラスを大幅に変更し、元に戻す/やり直しの履歴を失いました。まだ南に変換されていません。これを修正するコマンドはありますか?
ここに 1 つのアイデアがあります。最初に、FK の検出がサポートされているデータベースなど、ここにあるすべての免責事項をお読みください。
https://docs.djangoproject.com/en/dev/ref/django-admin/#django-admin-inspectdb
更新: 本当の答えは、下の 2 つのアイデアを組み合わせて使用することです。基本的に、 inspectdb は、モデルとデータベースの違いを理解するための、人間が読める優れた方法です。次に、一致するようにテーブルの変更ステートメントを手動で作成します。幸いなことにsqlall
、create ステートメントが出力されるため、そのほとんどは新しいフィールド用にカット アンド ペーストされます。
すべてのバックアップを作成します。
python manage.py inspectdb
移行を手動で行ってから南に変換することもできます。
python manage.py dbshell
python manage.py sqlall <myapp>