Как создать резервную копию базы данных postgres в файл sql, используя скрипт PHP? - PullRequest
3 голосов
/ 27 августа 2009

У меня следующая ситуация.

У меня есть скрипт PHP, который импортирует файл CSV, а затем обновляет базу данных postgres

Теперь мне нужно создать резервную копию базы данных перед импортом

Файлы PHP работают на одном сервере, а база данных postgres на другом сервере

Я пытался exec(pg_dump db_name -CdiOv > /tmp/db_name_backup.sql), но не думаю, что это сработает, поскольку БД находится на другом сервере.

Я не уверен, как это сделать, я могу исправить код на PHP, выполняя резервное копирование, но время запуска возрастает.

Любое объявление будет оценено по достоинству

Ответы [ 2 ]

4 голосов
/ 27 августа 2009

Как сказал depesz, вам нужно использовать опцию -h для определения удаленного хоста, но он все равно запросит пароль, который является проблемой. Попробуйте:

exec("export PGPASSWORD=mypassword && export PGUSER=myuser && pg_dump -h yourremotehost db_name -CdiOv > /tmp/db_name_backup.sql && unset PGPASSWORD && unset PGUSER");

В качестве альтернативы вы можете использовать файл ~ / .pgpass, но я никогда не пробовал этого. Проверить http://www.issociate.de/board/post/43225/pg_dump_+_cronjob.html и http://forum.soft32.com/linux/Backup-Postgressql-ftopict460054.html

1 голос
/ 27 августа 2009

pg_dump может легко подключиться к удаленному хосту - просто отметьте опцию -h.

Также - чего вы хотите добиться с помощью функции "-CdiOv"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...