commande pg_dump

Eléphant du PHP | 406 Messages

19 mai 2005, 16:29

Salut,


J ai essayer d effectuer la commande pg_dump sur ma base mais sa ne fonctionne pas cela me renvoi une erreur ?

<?php 


pg_dump -i -h 136.12.1.1 -p 5432 -U tom -F c -v -f "C:\Program Files\EasyPHP1-7\www\Projet\lasav01.bak"  "test"; 




?> 




et j ai ce message d erreur

Parse error: parse error, unexpected T_DNUMBER in c:\program files\easyphp1-7\www\projet\dump.php on line 4

Merci

Mammouth du PHP | 19672 Messages

19 mai 2005, 16:43

je peux me tromper, mais il me semble qu'il faut pas d'espace entre le "-p" et le "5432" qui suit ... ? J'ai lu un truc comme ça il y a peu de temps, mais je sais plus trop sur quels système au juste mais qui expliquait qu'en utilisant la forme courte de -password, donc -p, il ne fallait pas d'espace entre -p et le mot de passe
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 287 Messages

19 mai 2005, 18:20

je peux me tromper, mais il me semble qu'il faut pas d'espace entre le "-p" et le "5432" qui suit ... ? J'ai lu un truc comme ça il y a peu de temps, mais je sais plus trop sur quels système au juste mais qui expliquait qu'en utilisant la forme courte de -password, donc -p, il ne fallait pas d'espace entre -p et le mot de passe
pas convaincu: -p représente le numéro de port.
-W correspond au password (qui est d'ailleur facultatif) :wink:

de toutes manières pg_dump n'est pas une fonction php, donc tu ne pourra pas dumper ta base de cette façon.

Eléphant du PHP | 406 Messages

19 mai 2005, 20:45

je viens de me rendre compte, y parait qu il faut la dumper depuis l invite de commande.

Eléphant du PHP | 287 Messages

19 mai 2005, 21:21

c'est pas bien de poster sur plusieurs forums donny.
après il y en a qui se fatiguent à répondre pour rien.
[-X
alors maintenant dis moi sur lequel tu veux que je te réponde :lol:

Eléphant du PHP | 406 Messages

19 mai 2005, 21:42

sur celui ci :wink:

Eléphant du PHP | 287 Messages

19 mai 2005, 22:47

d'après ce que j'ai compris tu es sous windows avec postgres8.

pour faire un dump:
pg_dump nom_base -f chemin_fichier\fichier
ça c'est la commande de base.
pour des options (que les données, seulement la structure...) fait un pg_dump --help

pour que ça marche il faut que tu sois sous un utilisateur aux pouvoirs limités et de préférence propriétaire de la base que tu dump.

pour la restauration:
psql -f chemin\fichier nom_base
pour ce qui est de l'automatisation des tâches sous windows j'y connait pas grand chose mais tu peut regarder du côté du planificateur de tache ou même de cron voir visual cron.
si je me rappel bien un fichier .bat peut te permettre de lancer des commandes dos.

sinon tu as toujours phppgadmin.

Eléphant du PHP | 406 Messages

19 mai 2005, 22:54

Apparament in ne reconnait pas cette commande
C:\Program Files\PostgreSQL>pg_dump --help
'pg_dump' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.

Eléphant du PHP | 287 Messages

19 mai 2005, 23:07

:boire9:
Modifié en dernier par thierry le 21 mai 2005, 02:06, modifié 2 fois.

Eléphant du PHP | 406 Messages

19 mai 2005, 23:33

Pardon

Mammouth du PHP | 19672 Messages

19 mai 2005, 23:39

Juste une question en passant: as-tu jeté un oeil sur la doc de PostgreSQL ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 406 Messages

20 mai 2005, 08:25

j y ai jeter un oeil, et si j y arriverais je serais pas la
le truc est que je lance pg_dump depuis msdos et il ne reconnait pas la commande et je pige pas

Mammouth du PHP | 19672 Messages

20 mai 2005, 08:36

Je ne l'ai jamais utilisé, il faudrait que je l'installe et que je procède à des essais, je peux pas apporter une aide bien efficace sinon. C'est peut-être une question de version, j'ai trouvé une doc pour une autre version après celle dont j'ai mis un lien plus haut, apparemment c'était la même commande, mais ça a pu évoluer.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

baradji ismaila
Invité n'ayant pas de compte PHPfrance

13 oct. 2011, 21:50

Salut,
voici les deux commandes quìl te faut avec msdos
backup
C:\Program Files\PostgreSQL\9.0\bin > pg_dump --host 127.0.0.1 --port 5432 -U postgres --format custom --blobs --verbose --f C:\projet\backupDB_wind_001.backup db_mabase

restoration
C:\Program Files\PostgreSQL\9.0\bin >pg_restore --host 127.0.0.1 --port 5432 -U postgres --d db_test --clean --verbose "C:\projet\backupDB_wind_001.backup"

ces codes marchent sur msdos, mais je n'arrive a lancer cela dans php avec le code ci-dessous.

<?PHP
chdir("c:\Program files\PostgreSQL\9.0\bin");
exec("pg_dump --host 127.0.0.1 --port 5432 -U postgres --format custom --blobs -f C:\projet\backupDB_wind_14.backup db_pk_v4")
?>

quelqu'un a une solution?

baradji ismaila
Invité n'ayant pas de compte PHPfrance

17 oct. 2011, 17:18

solution php sur windows

<?PHP
$my_file = 'C:\projet_conception_bd\3_livrables\sauvegardes\fichier_message.txt';
$fp = fopen($my_file, "wb");
chdir("c:\Program files\PostgreSQL\9.0\bin");
$message = system('pg_dump --host 127.0.0.1 --port 5432 -U postgres --format custom -f C:\projet_conception_bd\3_livrables\sauvegardes\backupDB_wind_22.backup db_pk_v4', $retour);
if(!$retour) echo 'l\'execution s\'est mal passe';
write_file($my_file, $message);
?>