Pregunta ¿Qué versión de PostgreSQL estoy ejecutando?


Estoy en un entorno corporativo (ejecutando Debian Linux) y no lo instalé yo mismo. Accedo a las bases de datos usando Navicat o phpPgAdmin (si eso ayuda). Tampoco tengo acceso de shell al servidor que ejecuta la base de datos.


636
2017-12-05 22:34


origen


Respuestas:


Ejecute esta consulta desde PostgreSQL:

SELECT version();

933
2017-12-05 22:42



Creo que esto es lo que estás buscando,

Versión del servidor:

pg_config --version

Versión del cliente:

psql --version

381
2017-12-05 22:44



Usando CLI:

Versión del servidor:

$ postgres -V  # Or --version.  Use "locate bin/postgres" if not found.
postgres (PostgreSQL) 9.6.1
$ postgres -V | awk '{print $NF}'  # Last column is version.
9.6.1
$ postgres -V | egrep -o '[0-9]{1,}\.[0-9]{1,}'  # Major.Minor version
9.6

Si tiene más de una instalación de PostgreSQL, o si obtiene el "postgres: command not found"error:

$ locate bin/postgres | xargs -i xargs -t '{}' -V  # xargs is intentionally twice.
/usr/pgsql-9.3/bin/postgres -V 
postgres (PostgreSQL) 9.3.5
/usr/pgsql-9.6/bin/postgres -V 
postgres (PostgreSQL) 9.6.1

Si locate no ayuda, prueba find:

$ sudo find / -wholename '*/bin/postgres' 2>&- | xargs -i xargs -t '{}' -V  # xargs is intentionally twice.
/usr/pgsql-9.6/bin/postgres -V 
postgres (PostgreSQL) 9.6.1

A pesar de que postmaster también se puede usar en lugar de postgres, utilizando postgres es preferible porque postmaster es un alias en desuso de postgres.

Versión del cliente:

Tan relevante, iniciar sesión como postgres.

$ psql -V  # Or --version
psql (PostgreSQL) 9.6.1

Si tiene más de una instalación de PostgreSQL:

$ locate bin/psql | xargs -i xargs -t '{}' -V  # xargs is intentionally twice.
/usr/bin/psql -V 
psql (PostgreSQL) 9.3.5
/usr/pgsql-9.2/bin/psql -V 
psql (PostgreSQL) 9.2.9
/usr/pgsql-9.3/bin/psql -V 
psql (PostgreSQL) 9.3.5

Usando SQL:

Versión del servidor:

=> SELECT version();
                                                   version                                                    
--------------------------------------------------------------------------------------------------------------
 PostgreSQL 9.2.9 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4), 64-bit

=> SHOW server_version;
 server_version 
----------------
 9.2.9

=> SHOW server_version_num;
 server_version_num 
--------------------
 90209

Si es más curioso, prueba => SHOW all;.

Versión del cliente:

Por lo que vale, un comando de shell se puede ejecutar dentro de psql para mostrar la versión del cliente del psql ejecutable en el camino. Tenga en cuenta que el funcionamiento psql potencialmente puede ser diferente de la que está en el camino.

=> \! psql -V
psql (PostgreSQL) 9.2.9

171
2018-04-29 20:32



Ejecutar comando

psql -V

Dónde

V debe estar en mayúscula


33
2017-09-25 10:55



La respuesta aceptada es excelente, pero si necesita interactuar programáticamente con la versión de PostgreSQL, tal vez sea mejor hacerlo:

SELECT current_setting('server_version_num'); -- Returns 90603 (9.6.3)
-- Or using SHOW command:
SHOW server_version_num; -- Returns 90603 too

Devolverá la versión del servidor como un entero. Así es como se prueba la versión del servidor en la fuente de PostgreSQL, por ejemplo:

/*
 * This is a C code from pg_dump source.
 * It will do something if PostgreSQL remote version (server) is lower than 9.1.0
 */
if (fout->remoteVersion < 90100)
    /*
     * Do something...
     */  

Más información aquí y aquí.


12
2018-05-09 14:04



En mi caso

$psql
postgres=# \g
postgres=# SELECT version();
                                                       version
---------------------------------------------------------------------------------------------------------------------
 PostgreSQL 8.4.21 on x86_64-pc-linux-gnu, compiled by GCC gcc-4.6.real (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit
(1 row)

Espero que ayude a alguien


8
2017-07-18 10:29



El comando pg_config informará el directorio donde están instalados los programas de PostgreSQL (--bindir), la ubicación de los archivos de inclusión C (--includedir) y las bibliotecas de códigos de objeto (--libdir), y la versión de PostgreSQL (--version) :

$ pg_config --version
PostgreSQL 9.3.6

8
2018-04-23 06:22