Com que versão do cliente postgresql devo construir, se o servidor for 8.x?

1

Estou planejando atualizações para um sistema atualmente em execução com o servidor 8.x no Windows, o cliente 8.x no Windows e o cliente 8.x no Linux. Obviamente, isso parece ser uma má escolha de plataforma em um ambiente misto, mas a máquina Linux não tem armazenamento gravável persistente (como medida anti-rootkit). Estou preocupado com a compatibilidade entre versões agora mesmo.

Um cliente linux postgresql 9.0.x pode se conectar a um servidor Windows 8.x? O servidor está usando algumas extensões binárias de terceiros, portanto, atualizá-lo é uma tarefa mais complexa e será executada posteriormente.

Se a combinação de um cliente 9.0.xe 8.x server for desencorajada, os clientes 8.x mais recentes poderão continuar a se conectar se eu atualizei o servidor primeiro?

META: Qual tag é apropriada para perguntas de compatibilidade com versões anteriores?

    
por Ben Voigt 17.01.2011 / 01:47

1 resposta

3

Se você está falando sobre clientes em geral, o protocolo de comunicação do cliente do postgresql é estável e não mudou desde o postgresql 7.4 (versão de protocolo 3.0) de acordo com o manual . Assim, qualquer cliente pode se comunicar com qualquer servidor desde então. Adicionalmente, a libpq aparentemente pode se conectar ao protocolo 2.0 servidores .

Se você está falando sobre o cliente de linha de comando psql , ele pode se conectar a servidores antigos (ele usa libpq), mas os comandos de contrabarra (como \d tablename ) consultam as tabelas pg_catalog do banco de dados para retornar as informações está procurando. De acordo com a documentação do psql , o cliente sabe como executar os comandos \d nas versões anteriores do banco de dados, mas outros comandos podem ou não funcionar se o esquema de catálogo usado por eles tiver mudado. (Os comandos \d são praticamente todos eles , portanto você não deve ter nenhum problema.)

Como um aparte, você pode usar \set ECHO_HIDDEN para ver o que exatamente o psql está fazendo quando você usa os comandos da contrabarra. \unset ECHO_HIDDEN para retornar os comandos da contrabarra ao normal.

    
por 17.01.2011 / 03:23