PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment réparer le script de sauvegarde automatique pour postgres [Window] ?

Votre code doit envelopper tous les chemins entre guillemets doubles pour éliminer les espaces. Gardez à l'esprit cmd interprète chaque travail délimité par un espace comme une nouvelle commande. Nous devons échapper au & comme il deviendra un opérateur physique en batch, enfin il est préférable d'utiliser le /d option lors de l'utilisation de cd au cas où vous venez d'une autre lettre de lecteur :

@echo off    
 SET "PGPASSWORD=%Ech0-5910^&123"
 set "root=C:\Program Files (x86)\pgAdmin 4\v3\runtime\"
 cd /d "%root%"
 pg_dump.exe -h 192.168.1.161 -p 5432 -U postgres -F c -b -v -f "D:\Backup\DatabaseBackUp\SQL\123456.backup" testdb

Notez également que vous n'utilisez jamais le mot de passe dans votre pg_dump commande, vous devez donc en tenir compte également. La meilleure pratique consiste à modifier

%APPDATA%\postgresql\pgpass.conf

et ajouter

*:5432:*:username:password

pour automatiser cette partie dans votre script :

@echo off
  echo *:5432:*:postgres:%Ech0-5910^&123>""%APPDATA%\postgresql\pgpass.conf"
  set "root=C:\Program Files (x86)\pgAdmin 4\v3\runtime\"
  cd /d "%root%"
  pg_dump.exe -h 192.168.1.161 -p 5432 -U postgres -F c -b -v -f "D:\Backup\DatabaseBackUp\SQL\123456.backup" testdb

Si le dir n'existe pas, créez-le "%APPDATA%\postgresql"