PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Wywołanie polecenia psql pg_dump w skrypcie wsadowym

Oto rozwiązanie:

@echo off
SET TableListeFile=C:\Users\mtuna\Documents\dumpfiles\database_list.txt

REM Saveing all tables name of database test_db on a temp file: database_list.txt  
psql -U postgres  -d test_db -t -c "SELECT table_name FROM information_schema.tables WHERE table_schema='public' AND table_type='BASE TABLE'" -o "%TableListeFile%"

REM Loop on liste tables name:
FOR /F "tokens=*" %%I IN (%TableListeFile%) DO (
REM Dump each table on file
pg_dump  -U postgres -h localhost -t %%I test_db > "C:\Users\mtuna\Documents\dumpfiles\%%I.sql"
)
REM Delete temp file
del /Q %TableListeFile%

Poprosi Cię o wprowadzenie hasła dla każdego zrzutu. Jeśli nie chcesz być promowany, możesz użyć Pgpass Plik .

Mam nadzieję, że to pomoże.

Houari.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL psycopg2 Python3.7.4 UnicodeDecodeError:kodek „ascii” nie może dekodować byte

  2. PostgreSQL:Zapytanie nie ma miejsca docelowego dla danych wynikowych

  3. Wyliczenie Postgresql jakie są zalety i wady?

  4. BŁĄD:w Postgresie znaleziono więcej niż jedną posiadaną sekwencję

  5. GROUP lub DISTINCT po JOIN zwraca duplikaty