問題タブ [django-migrations]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - 移行を使用して Django のモデル フィールドにインデックスを追加する
Field.db_index
移行のあるアプリを使用して、モデル フィールドにインデックスを追加しようとしています。Django のドキュメントを見ると、次のように設定するだけですdb_index=True
。
そして、最初に新しい Django の移行を試しました。
しかし、移行は変更に気付かないようで、インデックスを作成するための sql コマンドを追加しません。だから私はここでdjango-admin.py
説明したように試しました:
ただし、それは sql コマンドも出力せず、次のエラーで終了します。
django - なぜdjango 1.7はフィールド選択の変更に対してマイグレーションを作成するのですか?
バージョン 1.7 でこの動作を確認しましたが、サウス マイグレーションを使用する以前のバージョンでは確認できませんでした。
例えば。
さらにオプションを追加したとき:
そして run makemigrations
、バックグラウンドから移行を作成しsouth
ます。データベーススキーマに影響を与えないため、変更が検出されなかったと言うべきだと思いました。それがどのような目的に役立つのかわかりません:
django - django 1.7 移行 -- すべての移行をクリアして最初からやり直すにはどうすればよいですか?
そのため、現在djangoアプリを迅速に繰り返しており、models.pyを常に調整しています。プログラミングとテストに 1 日か 2 日かけて、数十個の移行ファイルを生成します。スキーマを本当にバラバラにして、完全にやり直すこともあります。これにより、移行プロセスがデフォルトや null 値などについて多くの不満を抱くようになります。可能であれば、すべての移行作業をスクラッチして、自分が何をしているのかがようやくわかったので、移行を再開したいと思います。これまでの私のアプローチは次のとおりです。
- を除く移行フォルダー内のすべてを削除します
__init__.py
。 - PostgreSQL コンソールにドロップして実行します。
DELETE FROM south_migrationhistory WHERE app_name='my_app';
- PostgreSQL コンソールで、my_app に関連付けられたすべてのテーブルを削除します。
- 再実行
./manage.py makemigrations my_app
- これ0001_initial.py
により、移行フォルダーにファイルが生成されます。 - run
./manage migrate my_app
- このコマンドですべてのテーブルが再構築されることを期待していますが、代わりに「適用する移行はありません」と表示されます。
何を与える?
また、south_migrationhistory
South を捨てて Django 1.7 に切り替えた今でも、データベース テーブルは有効ですか?
ありがとう。
django - django 1.7 移行:何も変更されていない間に変更が検出されました
makemigrations
django 1.7のコマンドによって変更がどのように検出されますか?
私のフィールドの1つに変更があるのに、変更がないことが常に通知されるという問題があります。コマンドを実行すると、同じ移行ファイルが変更なしで何度も書き込まれます。
このフィールドは、deconstruct メソッドを実装したカスタム フィールドであり、オブジェクトであるパラメーターがいくつかあるため、deconstructible デコレーターを使用しました。
問題を再現する github でプロジェクトを作成しました: https://github.com/YAmikep/django-testmigrations
私は何を間違えましたか?これはバグですか?
これが私が実行したものです:
移行ファイル 0002_auto_20141014_2123.py と 0003_auto_20141014_2123.py には、まったく同じ操作が含まれています。
django - Django 1.7 の移行
私はdjango 1.7を使用しており、カスタムユーザーモデルを追加しました。どちらpython3 manage.py makemigrations
かを実行するpython3 manage.py migrate
と、エラーが発生します: TypeError: __init__() got an unexpected keyword argument 'preserve_default'
. この問題は、新しいカスタム ユーザー モデルを追加した後に発生しました。完全なトレースバックは次のとおりです。