sql >> Database >  >> RDS >> PostgreSQL

Hoe een geautomatiseerd back-upscript voor postgres [Window] te repareren?

Uw code moet alle paden tussen dubbele aanhalingstekens plaatsen om witruimte te elimineren. Onthoud cmd interpreteert elk door spaties gescheiden werk als een nieuw commando. We moeten ontsnappen aan de & aangezien het een fysieke operator in batch zal worden, verdient het ten slotte de voorkeur om de /d . te gebruiken optie bij gebruik van cd voor het geval je van een andere stationsletter komt:

@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

Merk ook op dat je nooit het wachtwoord in je pg_dump . gebruikt commando, dus daar moet je ook rekening mee houden. Best practice is om te bewerken

%APPDATA%\postgresql\pgpass.conf

en voeg

. toe
*:5432:*:username:password

om dat deel in je script te automatiseren:

@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

Als de dir bestaat niet, maak het aan "%APPDATA%\postgresql"




  1. HTML opslaan in MySQL-database

  2. de doeldatabaseversie instellen voor mysql workbench-migratie

  3. Toestemming verlenen voor het pad

  4. MS Office 2013 (32 bit) Excel en Access verbinding laten maken met de Oracle-database wanneer zowel 32 als 64 clients zijn geïnstalleerd