PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Извикване на командата psql pg_dump в пакетен скрипт

Ето едно решение:

@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%

Той ще ви подкани да въведете парола за всеки дъмп. Ако не искате да бъдете подканвани, можете да използвате Pgpass Файл .

Надявам се, че това помага.

Хуари.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Asp.net MVC4, PostgreSQL и SimpleMembership

  2. Дизайн на база данни за сдвояване, налагащо ограничения

  3. Деактивирайте обвиването в изхода на Psql

  4. PostgreSQL агент в SQL Standard комитет отново

  5. PostgreSQL 'NOT IN' и подзаявка