首頁 > 資料庫 > mysql教程 > 如何解決ContentType衝突導致的Django Fixture載入完整性錯誤?

如何解決ContentType衝突導致的Django Fixture載入完整性錯誤?

Patricia Arquette
發布: 2024-12-01 15:55:12
原創
462 人瀏覽過

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

Django Fixture 加載期間的ContentType 問題

問題:

嘗試加載Django 時當您將設備匯入MySQL 資料庫時,您會遇到內容類型衝突。從多個應用程式(包括“escola”)轉儲資料並嘗試將資料載入為固定裝置後,您會收到以下約束違規:

IntegrityError: (1062, "Duplicate entry 'escola-t23aluno' for key 2")
登入後複製

似乎Django 正在嘗試使用不同的主要內容重新建立內容類型與夾具中的值衝突的鍵值。

解決方案:

推薦的解決方案是使用 dumpdata --natural。此選項使用「自然鍵」來表示外鍵,這樣更耐用且不易發生衝突。例如,它不使用 Permission.id,而是使用 Permission.codename。

其他提示:

考慮轉儲資料的下列附加參數:

  • --indent=4:新增縮排
  • -e session:排除會話資料。
  • -e admin:排除管理員操作歷史記錄。
  • -e contenttypes -e auth.Permission:排除下列物件:當與--natural 一起使用時,會在syncdb 期間自動重新建立。這可以防止 ID 號碼對齊問題。

以上是如何解決ContentType衝突導致的Django Fixture載入完整性錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板