contenttypesの競合が原因で、MySQLデータベースにDjangoフィクスチャをロードできません。まず、次のように自分のアプリからのみデータをダンプしてみました。
./manage.py dumpdata escola > fixture.json
しかし、私のアプリ「escola」は他のアプリケーションのテーブルを使用しているため、外部キーの問題が何度も見つかりません。これに到達するまで、私は追加のアプリを追加し続けました:
./manage.py dumpdata contenttypes auth escola > fixture.json
データをテストフィクスチャとしてロードしようとすると、問題は次の制約違反になります。
IntegrityError: (1062, "Duplicate entry 'escola-t23aluno' for key 2")
問題は、Djangoがフィクスチャの主キー値と競合する異なる主キー値を持つコンテンツタイプを動的に再作成しようとしていることです。これは、ここに記載されているバグと同じように見えます:http : //code.djangoproject.com/ticket/7052
問題は、推奨される回避策は、すでに実行しているcontenttypesアプリをダンプすることです!?何ができますか?ここに記載されているように、それが何らかの違いを生む場合は、カスタムモデルのアクセス許可をいくつか持っています。http://docs.djangoproject.com/en/dev/ref/models/options/#permissions
-e contenttypes -e auth.permission
するの--natural
ですか?私は--natural
オプションなしで試したところ、うまくいきました。また、ここのドキュメントでは、DUMPINGauth.permission
およびの場合、このオプションを使用する必要があると述べていますcontenttypes
。