Импортировать дамп базы данных postgresql - PullRequest
3 голосов
/ 30 августа 2011

У меня есть следующий рабочий процесс, который я хотел бы автоматизировать с помощью короткого сценария PHP.

  1. Загрузите gzfile (с дампом базы данных) с определенного URL (возможно, с FTP).
  2. Расшифруйте файл в txt.
  3. Импорт txt в локальный postgre с помощью psql (используя cmd).

Теперь у меня есть 2 вопроса:

  • Как лучше всего передать файл с архивом в pg_query?
  • Я получаю сообщение об ошибке, когда PHP достигает этой строки:
    COPY rf (datum, id_emailu_op, recency, frequency) FROM stdin; 2011-08-29 8484 3 1. Может ли stdin быть проблемой?

Спасибо всем!

1 Ответ

2 голосов
/ 05 февраля 2012

Файл pg_dump предназначен для импорта через psql.Вы можете загрузить содержимое файла и даже распаковать его с помощью php, а затем открыть канал для psql записи данных в этот процесс (при условии, что вы работаете на машине с Unix).Когда psql выполняется таким образом, насколько это касается, данные, которые вы пишете через php-скрипт, поступают через stdin.

...