Цель - использовать паттерн Model-View-Controller для создания бэкапов на любой платформе, которую поддерживает PostgreSQL.
Сначала создадим SQL файл, реализующий Model и View:
backup.sql:
WITH t AS ( -- Эта часть Model.
SELECT quote_ident(datname) AS d
FROM pg_database WHERE NOT datistemplate
)
SELECT
'pg_dump -U postgres -Fc --file=' || d || -- Эта часть View.
to_char(now(),'_YYYYMMDD') ||
'.pgbackup' || ' '|| d
FROM t;
Затем реализуем Controller.
psql -Atqf backup.sql | sh
Заметьте, если вы на Windows, то можете подставить cmd.exe или command.com как sh.
Готово!
No comments:
Post a Comment