Djangoでunique_togetherからUniqueConstraintに変えたいときのサンプル、方法【メモ書き】

今回はメモ書き程度ですがDjangoでunique_togetherからUniqueConstraintに変えたいときのサンプル、方法についてご紹介いたします。



Djangoでunique_togetherからUniqueConstraintに変えたいときのサンプル、方法【メモ書き】

Djangoでunique_togetherからUniqueConstraintに変えたいときのサンプル、方法【メモ書き】

Djangoのモデルで定義するunique_togetherは古く、UniqueConstraintに変えたいときがあると思います。

しかし、ただ単にunique_togetherを消してUniqueConstraintに書き換えると、下記のようなエラーが出てmakemigrationsは成功しますがmigrationに失敗する可能性があります。

そんなときは、次の手順で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に変えたいときのサンプル、方法についてご紹介いたしました。

最後までお読みいただきありがとうございます。
よろしければブログやTwitterでのシェアをお願いしております。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。

ITパスポート、基本情報技術者、応用情報技術者などIPAが提供する国家資格の過去問を学べるモバイルアプリをリリースしました。
詳しくは下記のプレスリリースをご覧ください。
https://prtimes.jp/main/html/rd/p/000000008.000073303.html

Youtubeチャンネル開設いたしました。
チャンネル登録者10,000人を目指しているので、良いと思った方はチャンネル登録をお願いしたいです。
https://www.youtube.com/channel/UC219XhmSRxmXltTy6COxSMw






Django

Posted by ちこ