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.
Exécutez cette requête à partir de PostgreSQL:
SELECT version();
Je crois que c'est ce que vous recherchez,
Version du serveur:
pg_config --version
Version du client:
psql --version
$ 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
.
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
=> 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;
.
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
Exécuter la commande
psql -V
Où
V doit être en capital.
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)
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...
*/
dans Shell psql.exe, exécutez
\! psql -V
Un moyen simple est de vérifier la version en tapant psql --version
dans le terminal
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
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
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
où Installed: <version>
est la version du paquet postgres installé.
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.
Si Select version()
revient avec Memo, essayez d’utiliser la commande de cette façon:
Select version::char(100)
ou
Select version::varchar(100)