多個應用程式內容類型的Django Fixture 載入困難
嘗試將Django Fixture 載入到MySQL 資料庫時,您可能會遇到內容類型衝突。當嘗試將資料與特定應用程式隔離時,會出現此問題,因為目標應用程式通常依賴其他應用程式中的表。
要解決此問題,通常建議在 dumpdata 命令中包含其他應用程序,直到所有必要的表都包含在內均已核算。然而,在這種情況下,產生了「fixture.json」文件,但嘗試將資料載入為測試夾具會導致由於主鍵值衝突而導致約束衝突。
儘管 Django 文件建議轉儲contenttypes 應用程序,您表明您已經在這樣做。 Django 問題追蹤器中提供的建議解決方法似乎無法解決該問題。
此問題的一個潛在解決方案是在使用 dumpdata 命令時使用「--natural」標誌。透過這樣做,Django 將使用更持久的形式(也稱為「自然鍵」)來表示外鍵。例如,將使用“Permission.codename”而不是“Permission.id”,並將使用“User.username”而不是“User.id”。
使用「--natural」標誌確保外鍵的表示更穩健,並且可以解決載入裝置時的衝突。
以上是為什麼我的 Django Fixtures 由於 MySQL 中的內容類型衝突而無法載入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!