Djangoでunique_togetherからUniqueConstraintに変えたいときのサンプル、方法【メモ書き】
今回はメモ書き程度ですがDjangoでunique_togetherからUniqueConstraintに変えたいときのサンプル、方法についてご紹介いたします。
Djangoでunique_togetherからUniqueConstraintに変えたいときのサンプル、方法【メモ書き】
Djangoのモデルで定義するunique_togetherは古く、UniqueConstraintに変えたいときがあると思います。
しかし、ただ単にunique_togetherを消してUniqueConstraintに書き換えると、下記のようなエラーが出てmakemigrationsは成功しますがmigrationに失敗する可能性があります。
1 |
ValueError: Found wrong number (0) of constraints for 〇〇(××, △△) |
そんなときは、次の手順でunique_togetherを消してUniqueConstraintに書き換える必要があります。
1.modelのclass Metaに記載されているunique_togetherの記述を削除する
2.過去のマイグレーションファイルから1で削除したunique_together を設定している箇所をコメントアウト、もしくは削除する
3.DROP INDEX IF EXISTSなどを使ってunique制約をはずすマイグレーションを作る。空のマイグレーションを作って、直接SQLを流す。
4.models.UniqueConstraintを使ってmakemigrations、migrateを行い、新しいunique制約を作成する
これでunique_togetherからUniqueConstraintへの差し替えが完了するはずです。
終わりに
今回はメモ書き程度ですがDjangoでunique_togetherからUniqueConstraintに変えたいときのサンプル、方法についてご紹介いたしました。
ディスカッション
コメント一覧
まだ、コメントがありません