web-dev-qa-db-fra.com

Quelle version de PostgreSQL est-ce que je cours?

Je suis dans un environnement d'entreprise (sous Debian Linux) et je ne l'ai pas installé moi-même. J'accède aux bases de données en utilisant Navicat ou phpPgAdmin (si cela aide). De plus, je n'ai pas d'accès Shell au serveur qui exécute la base de données.

911
Highly Irregular

Exécutez cette requête à partir de PostgreSQL:

SELECT version();
1448
Highly Irregular

Je crois que c'est ce que vous recherchez,

Version du serveur:

pg_config --version

Version du client:

psql --version
484
user1877337

Utilisation de la CLI:

Version du serveur:

$ 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 vous avez plusieurs installations de PostgreSQL, ou si vous obtenez l'erreur "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 n'aide pas, essayez 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

Bien que postmaster puisse également être utilisé à la place de postgres, il est préférable d'utiliser postgres, car postmaster est un alias déconseillé de postgres.

Version du client:

Le cas échéant, identifiez-vous en tant que postgres .

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

Si vous avez plusieurs installations 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

Utilisation de SQL:

Version du serveur:

=> 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 plus curieux, essayez => SHOW all;.

Version du client:

Pour ce que cela vaut, une commande Shell peut être exécutée dans psql pour afficher la version cliente de l'exécutable psql dans le chemin. Notez que psql en cours d'exécution peut potentiellement être différent de celui du chemin.

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

Exécuter la commande

psql -V

V doit être en capital.

36
vipin cp

Si vous utilisez CLI et que vous êtes un utilisateur postgres, vous pouvez alors procéder comme suit:

psql -c "SELECT version();"


Possible sortie:

                                                         version                                                         
-------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 11.1 (Debian 11.1-3.pgdg80+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.9.2-10+deb8u2) 4.9.2, 64-bit
(1 row)
31
simhumileco

La réponse acceptée est excellente, mais si vous avez besoin d'interagir par programme avec la version de PostgreSQL, il est peut-être préférable de le faire:

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

Il renverra la version du serveur sous forme d'entier. Voici comment la version du serveur est testée dans source PostgreSQL , par exemple:

/*
 * 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...
     */  

Plus d'infos ici et ici .

30
Michel Milezzi

dans Shell psql.exe, exécutez

\! psql -V

Avec pgadmin4, vous pouvez le visualiser en double-cliquant sur Serveurs> nom_serveur_ici> onglet Propriétés> Version:

Version 3.5:

pgadmin4 show postgres version. Servers > server_name > Properties > Version

Version 4.1, 4.5:

enter image description here

11
jmunsch

Un moyen simple est de vérifier la version en tapant psql --version dans le terminal

10
Alex Trn

La commande pg_config indique le répertoire dans lequel les programmes PostgreSQL sont installés (--bindir), l'emplacement des fichiers d'inclusion C (--includedir) et des bibliothèques de code objet (--libdir), ainsi que la version de PostgreSQL (--version). :

$ pg_config --version
PostgreSQL 9.3.6
8
Donato

Dans mon cas

$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)

J'espère que ça va aider quelqu'un

8
Vikas Hardia

Si vous avez un accès Shell au serveur (la question ne mentionne pas op, mais si vous avez,) sur un système debian/ubuntu

Sudo apt-cache policy postgresql

qui affichera la version installée,

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

Installed: <version> est la version du paquet postgres installé.

3

Je ne sais pas à quel point cela est fiable, mais vous pouvez obtenir deux jetons de version de manière entièrement automatique:

psql --version 2>&1 | tail -1 | awk '{print $3}' | sed 's/\./ /g' | awk '{print $1 "." $2}'

Vous pouvez donc créer des chemins vers des fichiers binaires:

/usr/lib/postgresql/9.2/bin/postgres

Il suffit de remplacer 9.2 par cette commande.

3
Alexey Petrenko

Si Select version() revient avec Memo, essayez d’utiliser la commande de cette façon:

Select version::char(100) 

ou

Select version::varchar(100)
0
aTa