sql >> Databáze >  >> RDS >> PostgreSQL

Django nemůže načíst testovací zařízení, IntegrityError

Zdá se, že django dumpdata vyhodil zařízení ve špatném pořadí. Podívejte se do souboru json a zkontrolujte, zda product s id: 1 je tam přítomen. Pokud, jak předpokládám, je to pravda, použijte k výpisu dat nějaké sofistikovanější nástroje, například django-fixture-magic

Případně můžete chtít odstranit všechna omezení integrity pomocí db motoru těsně před nahráním a pokusit se je znovu vytvořit hned poté, ale to je poněkud riskantní, pokud se vyskytnou nějaké chyby integrity.

Informace o PostgreSQL naleznete v tomto vláknu abyste věděli, jak získat definice tabulek. V MySQL by to bylo něco takového:

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

Následující část by měla fungovat pro oracle, postgre a 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. Liferay nefunguje s MySQL

  2. Jak vložit hodnotu NULL z proměnné PHP do MySQL, abyste se vyhnuli vkládání SQL?

  3. Nativní dotaz na jarní data neumožňuje operátor Postgres jsonb string exist (otazník)

  4. MySQL - Změňte hodnotu pole po X minutách nečinnosti