Имеется такая задача:
Дано: два сервера на каждом PostgreSQL: один рабочий, на нём PostgreSQL 8.4.9, второй планируется для формирования отчётов и т.п. дел, допускающих некоторую задержку с обновлением данных, сейчас версия PostgreSQL 9.1.11.
Требуется: раз в день их синхронизировать - забирать с рабочего дампы необходимых таблиц и разворачивать их на втором сервере с добавлением новых записей и обновлением существующих, всё это скриптами по крону.
Сейчас это сделано скриптами, отчасти костыльно. Можно-ли как-то развернуть дамп отдельной таблицы с обновлением уже имеющегося? На stackoverflow попался вариант с truncate:
pg_dump -t table1 production_database >/tmp/old_production_database_table1.sql
pg_dump -t table1 devel_database >/tmp/devel_database_table1.sql
psql production_database
truncate table1
\i /tmp/devel_database_table1.sql
\i /tmp/old_production_database_table1.sql