0
0

More than 1 year has passed since last update.

insert or update on table "django_admin_log" violates foreign key constraint...というエラーが出た場合の処理

Posted at

『動かして学ぶ! Python Django開発入門』のchapter11にて、起きたバグを解決したのでメモとして残す。

※レコードが全て消えます

全てのアプリのmigrationsフォルダの__init__.py以外を消す。
__init__.pyも消してしまったら作り直す(中身は空でいい)
自分の場合はdiary/migrationsaccounts/migrationsの中身を削除

psql -d private_diary(自分が作成したDB名)でDBに接続
※psql -h ホスト名 -p ポート番号 -U ロール名 -d データベース名を省略したコマンド

DB全削除

drop schema public cascade;
create schema public;

の後に

python manage.py makemigrations
python manage.py migrate

でテーブルを元に戻る

このエラーは本の書いてある通りに./manage.py migrateを行わない場合に起こってしまうように思う。
custome_userを作成する前にdjangoに標準で作成されるuserでmigrateし、その後にcustome_userを作るので
table同士のリレーションがおかしくなって起こるエラーみたい。

もっといいやり方があればコメントしていただけると嬉しいです。

参考
https://qiita.com/a-suenami/items/e231adc2e083ef9449f6

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0