[postgresql] Включаем поддержку mysql через mysql_fdw

Это расширение, которое позволяет использовать таблицы из mysql в postgresql. Подробнее о самом плагине, а так же установке/использованию можно прочесть на официальной страничке проекта

В моём же случае, был апгрейд postgresql с 9.3 до 9.4 с некими «сюрпризами». А сюрпризы заключались в том, что на 9.3 была старая версия mysql_fdw в которой были опции address/query, которых нет в новой. И понятно, что при выполнении pg_upgrade получаем ругань на это. Как быть? А план такой (подсказали на одном из форумов):

1) подсунуть новый модуль mysql_fdw в 9.3.
2) заменить/удалить deprecated опции
3) собственно upgrade.

В новой версии вместо address использовался host. Приступаем:

postgres=# ALTER SERVER mysql_slave OPTIONS(DROP address);
postgres=# ALTER SERVER mysql_slave OPTIONS(ADD host '192.168.0.230');

Далее нужно убрать все query опции (так как аналогов нет):

postgres=# ALTER FOREIGN TABLE mysql.newtable OPTIONS(DROP query);

После этого уже ругани не будет и можно выполнять upgrade:

# su postgres -c "/usr/postgres/9.4/bin/amd64/pg_upgrade -d /var/postgres/9.3_new -D /var/postgres/9.4 -b /usr/postgres/9.3/bin/amd64/ -B /usr/postgres/9.4/bin/amd64/"

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *