Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ralat Integriti Memuatkan Jadual Django yang Disebabkan oleh Konflik ContentType?

Bagaimana untuk Menyelesaikan Ralat Integriti Memuatkan Jadual Django yang Disebabkan oleh Konflik ContentType?

Patricia Arquette
Patricia Arquetteasal
2024-12-01 15:55:12391semak imbas

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

Isu dengan ContentTypes semasa Django Fixture Loading

Masalah:

Semasa cuba memuatkan Django lekapan ke dalam pangkalan data MySQL, anda menghadapi konflik jenis kandungan. Selepas membuang data daripada berbilang apl, termasuk "escola," dan cuba memuatkan data sebagai lekapan, anda menerima pelanggaran kekangan berikut:

IntegrityError: (1062, "Duplicate entry 'escola-t23aluno' for key 2")

Nampaknya Django cuba mencipta semula jenis kandungan dengan utama yang berbeza nilai utama yang bercanggah dengan nilai dalam lekapan.

Penyelesaian:

Penyelesaian yang disyorkan ialah menggunakan dumpdata --natural. Pilihan ini menggunakan "kunci semula jadi" untuk mewakili kunci asing, yang lebih tahan lama dan kurang terdedah kepada konflik. Contohnya, bukannya menggunakan Permission.id, ia menggunakan Permission.codename.

Petua Tambahan:

Pertimbangkan hujah tambahan berikut untuk dumpdata:

  • --indent=4: Menambah lekukan untuk kebolehbacaan.
  • -e sesi: Tidak termasuk data sesi.
  • -e pentadbir: Tidak termasuk sejarah tindakan pentadbir.
  • -e contenttypes -e auth. Kebenaran: Mengecualikan objek yang dicipta semula secara automatik semasa syncdb apabila digunakan dengan --natural. Ini boleh mengelakkan isu penjajaran dengan nombor ID.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat Integriti Memuatkan Jadual Django yang Disebabkan oleh Konflik ContentType?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn