ホームページ > データベース > mysql チュートリアル > ContentType の競合によって引き起こされる Django フィクスチャの読み込み IntegrityErrors を解決する方法?

ContentType の競合によって引き起こされる Django フィクスチャの読み込み IntegrityErrors を解決する方法?

Patricia Arquette
リリース: 2024-12-01 15:55:12
オリジナル
444 人が閲覧しました

How to Resolve Django Fixture Loading IntegrityErrors Caused by ContentType Conflicts?

Django フィクスチャのロード中の ContentTypes の問題

問題:

Django のロード試行中フィクスチャを MySQL データベースに追加すると、コンテンツ タイプの競合が発生します。 「escola」を含む複数のアプリからデータをダンプし、そのデータをフィクスチャとしてロードしようとすると、次の制約違反が発生します:

IntegrityError: (1062, "Duplicate entry 'escola-t23aluno' for key 2")
ログイン後にコピー

Django が異なるプライマリでコンテンツ タイプを再作成しようとしているようですの値と競合するキーの値fixture.

解決策:

推奨される解決策は、dumpdata --natural を使用することです。このオプションでは、耐久性が高く、競合が起こりにくい「自然キー」を使用して外部キーを表します。たとえば、Permission.id を使用する代わりに、Permission.codename を使用します。

追加のヒント:

dumpdata の次の追加引数を考慮してください:

  • --indent=4: 読みやすくするためにインデントを追加します。
  • -e session: セッション データを除外します。
  • -e admin: 管理者のアクション履歴を除外します。
  • -e contenttypes -e auth.Permission: --natural と一緒に使用すると、syncdb 中に自動的に再作成されるオブジェクトを除外します。 。これにより、ID 番号の位置合わせの問題を防ぐことができます。

以上がContentType の競合によって引き起こされる Django フィクスチャの読み込み IntegrityErrors を解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート