Копировать данные между базами данных postgres
Мне как раз нужно скопировать данные из одной таблицы в базе данных PostgreSQL в соответствующую таблицу в другой базе данных. Там не так много данных: около 2500 строк, 8 столбцов (некоторые числовые, некоторые varchar).
Моей первой мыслью было просто pg_dump -a -t table -f output.file
а потом pg_restore
в другой базе данных. Однако, как оказалось, версии pg_dump
и исходный сервер не совпадает - и я не имею контроля над версиями, поэтому обновление не вариант:
pg_dump: server version: 9.1.2; pg_dump version: 9.0.5
pg_dump: aborting because of server version mismatch
К сожалению, с 9-й версией Postgres, опция -i
(игнорировать версию) больше не доступно. Я знаю, что я делаю, но это все равно не позволило бы мне (естественно).
Какие еще варианты у меня есть?
1 ответ
Я хотел бы использовать COPY TO
а также COPY FROM
, Работает в любой из версий и является оптимальным инструментом для этого.
Если вы хотите использовать pg_dump
, вы должны использовать соответствующую версию. Есть отдельные исполняемые файлы для каждой версии. В Linux вы можете получить путь к используемому в данный момент исполняемому файлу с помощью which pg_dump
,