Я планирую обновить систему, которая в настоящее время работает с сервером 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
чтобы вернуть команды обратной косой черты в нормальное состояние.