sql >> Database teknologi >  >> RDS >> PostgreSQL

Django kan ikke indlæse testarmaturer, IntegrityError

Det ser ud til, at django dumpdata dumpede armaturer i forkert rækkefølge. Kig i json-filen for at kontrollere, om product med id: 1 er til stede der. Hvis, som jeg formoder, dette er sandt, så brug nogle mere sofistikerede værktøjer til at dumpe data, for eksempel django-fixture-magic

Alternativt vil du måske slette alle integritetsbegrænsninger ved hjælp af db-motoren lige før upload og prøve at genskabe dem lige efter, men dette er noget risikabelt, hvis der vil være nogle integritetsfejl.

For PostgreSQL, se denne tråd at vide, hvordan du får dine tabeller definitioner. I MySQL ville det være noget som følger:

$ 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;

Følgende del skulle fungere for oracle, postgre og 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



  1. MySQL GROUP &COUNT Flere tabeller

  2. Brug af Percona Audit Log Plugin til databasesikkerhed

  3. Brug af REGEXP inde i mysqli forberedt erklæring i PHP

  4. Hent venneliste i mysql