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 peut aider). Je n'ai pas non plus d'accès shell au serveur qui exécute la base de données.
Réponses
Trop de publicités?-
Utilisation de la ligne de commande Serveur :
postgres -V
Client :
psql -V
-
Connectez-vous ensuite à postgres :
postgres=# select version();
Ou de cli :
psql -c "SELECT version();"
-
Utilisez
VERSION
variable spéciale Connectez-vous en tant qu'utilisateur postgres :sudo su - postgres
Ensuite :
psql -c "\echo :VERSION"
Consultez ce guide aquí pour une explication complète
Je ne sais pas si c'est fiable, mais vous pouvez obtenir deux jetons de la version entièrement automatique :
psql --version 2>&1 | tail -1 | awk '{print $3}' | sed 's/\./ /g' | awk '{print $1 "." $2}'
Vous pouvez donc construire des chemins vers des binaires :
/usr/lib/postgresql/9.2/bin/postgres
Il suffit de remplacer 9.2 par cette commande.
Il s'agit d'une question assez ancienne avec de nombreuses bonnes réponses. J'ai trouvé qu'à partir de la version 12, le simple fait d'invoquer le client me dit ce que j'ai besoin de savoir, mais je les ai exécutés sur le shell du serveur. Exemples ci-dessous avec les résultats.
Quand j'étais sur la version 12 :
$ sudo su postgres -c "psql"
psql (12.8 (Ubuntu 12.8-0ubuntu0.20.04.1))
J'ai lu ceci comme si le client et le serveur étaient tous deux à la version 12.
Après avoir mis à jour Ubuntu de 20.04 à 21.04 :
$ sudo su postgres -c "psql"
psql (13.4 (Ubuntu 13.4-0ubuntu0.21.04.1), server 12.8 (Ubuntu 12.8-0ubuntu0.20.04.1))
Il me dit clairement que le client est sur la version 13 mais le serveur est toujours sur la 12, comme je l'ai confirmé :
$ pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
12 main 5432 online postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log
Remarquez, au passage, ce résultat trompeur, à ce stade :
$ pg_config --version
PostgreSQL 13.4 (Ubuntu 13.4-0ubuntu0.21.04.1)
Après que j'ai amélioré à la version 14 :
$ sudo su postgres -c "psql"
psql (14.0 (Ubuntu 14.0-1.pgdg21.04+1))
Type "help" for help.
postgres=#
Encore une fois, j'interprète cela comme si le client et le serveur étaient tous deux en version 14, ce qui est confirmé une fois de plus :
$ pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
12 main 5432 down,binaries_missing postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log
14 main 5433 online postgres /var/lib/postgresql/14/main /var/log/postgresql/postgresql-14-main.log
Cette version est, d'ailleurs, la même que celle obtenue en exécutant la commande SELECT version();
requête.