Tampaknya Django dumpdata membuang perlengkapan dalam urutan yang salah. Lihat di file json untuk memeriksa apakah product
dengan id: 1
hadir di sana. Jika, seperti yang saya duga, ini benar, gunakan beberapa alat yang lebih canggih untuk membuang data, misalnya django-fixture-magic
Atau, Anda mungkin ingin menghapus semua batasan integritas melalui mesin db sebelum mengunggah dan mencoba membuatnya kembali setelahnya, tetapi ini agak berisiko jika beberapa kesalahan integritas akan muncul.
Untuk PostgreSQL, lihat utas ini untuk mengetahui cara mendapatkan definisi tabel Anda. Di MySQL itu akan menjadi seperti berikut:
$ mysqldump --no-data -utest django auth_user_user_permissions
CREATE TABLE `auth_user_user_permissions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`permission_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `user_id` (`user_id`,`permission_id`),
KEY `auth_user_user_permissions_403f60f` (`user_id`),
KEY `auth_user_user_permissions_1e014c8f` (`permission_id`),
CONSTRAINT `user_id_refs_id_dfbab7d` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`),
CONSTRAINT `permission_id_refs_id_67e79cb` FOREIGN KEY (`permission_id`) REFERENCES `auth_permission` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Bagian berikut harus berfungsi untuk Oracle, postgre dan mysql
> alter table `auth_user_user_permissions` drop foreign key `user_id_refs_id_dfbab7d`;
Query OK, 0 rows affected (0.97 sec)
Records: 0 Duplicates: 0 Warnings: 0
> alter table `auth_user_user_permissions` add CONSTRAINT `user_id_refs_id_dfbab7d` FOREIGN KEY (`user_id`) references `auth_user` (`id`);
Query OK, 0 rows affected (0.95 sec)
Records: 0 Duplicates: 0 Warnings: 0