Lorsque j'essaie d'exécuter pg_restore.exeun fichier de vidage à partir d'une base de données, cela génère des dizaines d'erreurs, tout de même:
ERROR: insert or update on table "someTable" violates foreign key constraint "aConstraintName"
Cela est évidemment dû au fait que j'ai vidé la base de données avant de la restaurer à partir du fichier de vidage (ce fichier provient d'une base de données de production) ... alors bien sûr, aucune contrainte de clés étrangères ne peut être correcte si une table référencée est vide ...
Existe-t-il un moyen de désactiver les contraintes et toutes les clés étrangères, pour toutes les tables, avant d'appeler pg_restore.exe, puis de réactiver les contraintes et les clés étrangères.
Dans SO, j'ai trouvé quelque chose d'intéressant: reporter la vérification des contraintes pour valider le temps . Mais je ne pense pas pouvoir appeler pg_restore.exede l'intérieur psql.exeaprès avoir différé les contraintes.
Il y a aussi ce post , datant d'il y a 10 ans, suggérant de supprimer puis de rajouter les contraintes. Ou changer la valeur des religgers de pg_class à 0 et ce serait également possible pour les contraintes ... mais je crains que ce soit plus de piratage que de bonnes pratiques ...
Que conseillez-vous, quelle est la meilleure pratique dans ce cas? L'utilisation pg_dump.exe avec l' -cleanindicateur crée-t-elle un vidage qui contourne la vérification des contraintes lors de la restauration de la base de données?