Question 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). Je n'ai pas non plus d'accès shell au serveur exécutant la base de données.


636
2017-12-05 22:34


origine


Réponses:


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

SELECT version();

933
2017-12-05 22:42



Je crois que c'est ce que tu cherches,

Version du serveur:

pg_config --version

Version du client:

psql --version

381
2017-12-05 22:44



Utilisation de 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 plus d'une installation de PostgreSQL, ou si vous obtenez le "postgres: command not found" Erreur:

$ 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 peut également être utilisé à la place de postgres, en utilisant postgres est préférable parce que postmaster est un alias obsolète de postgres.

Version du client:

Si pertinent, Se connecter en tant que postgres.

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

Si vous avez plus d'une installation 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

En utilisant 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 ça vaut, une commande shell peut être exécutée dans psql pour montrer la version client de psql exécutable dans le chemin. Notez que le fonctionnement psql peut potentiellement être différent de celui sur le chemin.

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

171
2018-04-29 20:32



Exécuter la commande

psql -V

V doit être en capital.


33
2017-09-25 10:55



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

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

Il retournera la version du serveur en entier. C'est ainsi que la version du serveur est testée dans la 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'informations ici et ici.


12
2018-05-09 14:04



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
2017-07-18 10:29



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

$ pg_config --version
PostgreSQL 9.3.6

8
2018-04-23 06:22



dans shell psql.exe, exécutez

\! psql -V

8
2018-03-21 05:57



Dans mon cas, compléter la réponse de @ A-B-B, qui fonctionne bien pour moi, est la suivante:

$ locate bin/postgres -- if not found, use "sudo updatedb" to update the index of locate command
/usr/lib/postgresql/9.0/bin/postgres -- local found
$ cd /usr/lib/postgresql/9.0/bin -- my local installation
$ sudo ./postgres -V
postgres (PostgreSQL) 9.0.23

3
2018-03-28 13:53



Si vous avez un accès shell au serveur (la question mentionnée op ne l'a pas, mais au cas où vous l'avez fait) sur un système debian / ubuntu

sudo apt-cache policy postgresql

qui sortira 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

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


2
2018-03-25 21:20



Si Select version() retourne avec Memo essayez d'utiliser la commande de cette façon:

Select version::char(100) 

ou

Select version::varchar(100)

1
2017-08-05 05:03