Назад | Перейти на главную страницу

С какой версией клиента postgresql я должен строить, если сервер 8.x?

Я планирую обновить систему, которая в настоящее время работает с сервером 8.x в Windows, клиентом 8.x в Windows и клиентом 8.x в Linux. Очевидно, что это кажется плохим выбором платформы в смешанной среде, но машина Linux не имеет постоянного хранилища с возможностью записи (в качестве меры защиты от руткитов). Меня сейчас беспокоит совместимость версий.

Может ли клиент linux postgresql 9.0.x подключаться к серверу Windows 8.x? Сервер использует некоторые сторонние двоичные расширения, поэтому его обновление является более сложной задачей и будет выполнено позже.

Если объединение клиента 9.0.x и сервера 8.x не рекомендуется, смогут ли последние версии клиентов 8.x продолжить подключение, если я сначала обновлю сервер?

META: Какой тег подходит для вопросов обратной совместимости?

Если вы говорите о клиентах в целом, протокол связи с клиентом postgresql стабилен и не менялся с postgresql 7.4 (версия протокола 3.0) в соответствии с руководство. Таким образом, с тех пор любой клиент может общаться с любым сервером. Кроме того, libpq, очевидно, может подключаться к протоколу 2.0 серверы.

Если вы говорите о psql клиент командной строки, он может подключаться к старым серверам (он использует libpq), но команды с обратной косой чертой (например, \d tablename) запросить базу данных pg_catalog таблицы, чтобы вернуть информацию, которую вы ищете. В соответствии с документация psql, клиент знает, как выполнить \d команды в предыдущих версиях базы данных, но другие команды могут работать или не работать, если схема каталога, которую они используют, изменилась. (The \d команды в значительной степени все они так что проблем возникнуть не должно.)

Кроме того, вы можете использовать \set ECHO_HIDDEN чтобы увидеть, что именно делает psql при использовании команд с обратной косой чертой. \unset ECHO_HIDDEN чтобы вернуть команды обратной косой черты в нормальное состояние.