Het klinkt alsof je een SQL-dump krijgt in plaats van een binaire dump van pg_dump
. Dat zou je een grote stapel SQL geven met het schema (inclusief FK's) bovenaan, gevolgd door een aantal INSERT's om de gegevens opnieuw te laden. Een binaire dump van pg_dump
zou u beter van dienst zijn, het lijkt erop dat u wat extra configuratie nodig heeft om PhpPgAdmin te vertellen waar pg_dump
is. Vervolgens voer je die binaire dump in pg_restore
en pg_restore
zou alles opnieuw opbouwen in de juiste volgorde om referentiële integriteitsproblemen te voorkomen (of, beter gezegd, pg_restore
zou alle gegevens herstellen en vervolgens de beperkingen toevoegen).
PhpPgAdmin lijkt te willen werk met gewone SQL-dumps
in plaats van pg_restore
. Ik vind dit moeilijk te geloven, maar ik kan niets vinden in de documentatie over het aanroepen van pg_restore
. Als dit waar is, moet u waarschijnlijk de SQL-dump handmatig bewerken en alle FK's naar het einde verplaatsen.
U kunt ook proberen SET CONSTRAINTS ALL DEFERRED;
bovenaan uw SQL-dump, die de controle op beperkingen zou moeten uitstellen tot het einde van de transactie, moet u er ook voor zorgen dat het hele blok INSERT's zich in een transactie bevindt.
Als PhpPgAdmin pg_restore
echt niet kan aanroepen dan kun je beter pg_dump
. gebruiken en pg_restore
met de hand zodat u de nodige controle heeft over uw back-upprocedures. Sorry, maar elke databasebeheerder die niet overweg kan met het maken van een back-up van een database met FK's is erger dan nutteloos. Hopelijk verschijnt er iemand die de weg weet in PhpPgAdmin en laat ons weten hoe we pg_restore
moeten gebruiken met PhpPgAdmin.