sirve - ¿Qué versión de PostgreSQL estoy ejecutando?
postgresql vs mysql (11)
Estoy en un entorno corporativo (ejecutando Debian Linux) y no lo instalé yo mismo. Accedo a las bases de datos utilizando Navicat o phpPgAdmin (si eso ayuda). Tampoco tengo acceso de shell al servidor que ejecuta la base de datos.
Utilizando 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 error " postgres: command not found
":
$ 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, intente 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
Aunque postmaster
también se puede usar en lugar de postgres
, es preferible usar postgres
porque postmaster
es un alias en desuso de postgres
.
Versión de cliente:
Según corresponda, inicie 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
Utilizando 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 de cliente:
Para lo que vale, se puede ejecutar un comando de shell dentro de psql
para mostrar la versión del cliente del ejecutable psql
en la ruta. Tenga en cuenta que el psql
ejecución puede ser potencialmente diferente del que está en la ruta.
=> /! psql -V
psql (PostgreSQL) 9.2.9
Creo que esto es lo que estás buscando,
Versión del servidor:
pg_config --version
Versión de cliente:
psql --version
Ejecuta esta consulta desde PostgreSQL:
SELECT version();
Ejecutar comando
psql -V
Dónde
V debe estar en la capital.
El comando pg_config informará el directorio donde están instalados los programas PostgreSQL (--bindir), la ubicación de C incluye los archivos (--includedir) y las bibliotecas de código de objeto (--libdir), y la versión de PostgreSQL (--version) :
$ pg_config --version
PostgreSQL 9.3.6
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
La respuesta aceptada es excelente, pero si necesita interactuar de manera programática con la versión de PostgreSQL, tal vez sea mejor:
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 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...
*/
No sé qué tan confiable es esto, pero puedes obtener dos tokens de versión de forma totalmente automática:
psql --version 2>&1 | tail -1 | awk ''{print $3}'' | sed ''s//./ /g'' | awk ''{print $1 "." $2}''
Para que puedas construir rutas a binarios:
/usr/lib/postgresql/9.2/bin/postgres
Simplemente reemplace 9.2 con este comando.
Si Select version()
regresa con Memo, intente usar el comando de esta manera:
Select version::char(100)
o
Select version::varchar(100)
Si tiene acceso de shell al servidor (la pregunta menciona que op no tiene, pero si tiene,) en un sistema debian / ubuntu
sudo apt-cache policy postgresql
que dará salida a la versión instalada,
postgresql:
Installed: 9.6+184ubuntu1.1
Candidate: 9.6+184ubuntu1.1
Version table:
*** 9.6+184ubuntu1.1 500
500 http://in.archive.ubuntu.com/ubuntu artful-updates/main amd64 Packages
500 http://in.archive.ubuntu.com/ubuntu artful-updates/main i386 Packages
500 http://security.ubuntu.com/ubuntu artful-security/main amd64 Packages
500 http://security.ubuntu.com/ubuntu artful-security/main i386 Packages
100 /var/lib/dpkg/status
9.6+184ubuntu1 500
500 http://in.archive.ubuntu.com/ubuntu artful/main amd64 Packages
500 http://in.archive.ubuntu.com/ubuntu artful/main i386 Packages
donde Installed: <version>
es la versión del paquete postgres instalado.
en shell psql.exe, ejecute
/! psql -V