it-swarm.com.de

Welche Version von PostgreSQL verwende ich?

Ich bin in einer Unternehmensumgebung (mit Debian Linux) und habe es nicht selbst installiert. Ich greife mit Navicat oder phpPgAdmin auf die Datenbanken zu (wenn das hilft). Ich habe auch keinen Shell-Zugriff auf den Server, auf dem die Datenbank ausgeführt wird.

911

Führen Sie diese Abfrage von PostgreSQL aus:

SELECT version();
1448

Ich glaube, das ist was du suchst,

Serverversion:

pg_config --version

Client-Version:

psql --version
484
user1877337

Verwenden der CLI:

Serverversion:

$ 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

Wenn Sie mehr als eine PostgreSQL-Installation haben oder den Fehler "postgres: command not found" erhalten:

$ 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

Wenn locate nicht hilft, versuchen Sie 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

Obwohl postmaster auch anstelle von postgres verwendet werden kann, ist die Verwendung von postgres vorzuziehen, da postmaster ein veralteter Alias ​​von postgres ist.

Client-Version:

Wie relevant, Login als postgres .

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

Wenn Sie mehr als eine Installation von PostgreSQL haben:

$ 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

SQL verwenden:

Serverversion:

=> 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

Wenn Sie neugieriger sind, versuchen Sie es mit => SHOW all;.

Client-Version:

Ein Shell-Befehl kann in psql ausgeführt werden, um die Client-Version der ausführbaren Datei psql im Pfad anzuzeigen. Beachten Sie, dass sich die Ausführung von psql möglicherweise von der im Pfad unterscheidet.

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

Befehl ausführen

psql -V

Wo

V muss in Kapital sein.

36
vipin cp

Wenn Sie CLI verwenden und ein postgres Benutzer sind, können Sie dies tun:

psql -c "SELECT version();"


Möglich Ausgabe:

                                                         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

Die akzeptierte Antwort ist großartig, aber wenn Sie programmgesteuert mit der PostgreSQL-Version interagieren müssen, ist es vielleicht besser, Folgendes zu tun:

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

Die Serverversion wird als Ganzzahl zurückgegeben. So wird die Serverversion in PostgreSQL-Quelle getestet, z.

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

Weitere Infos hier und hier .

30
Michel Milezzi

führen Sie in Shell psql.exe aus

\! psql -V

Wenn Sie pgadmin4 verwenden, können Sie dies anzeigen, indem Sie auf Server> Servername_hier> Registerkarte Eigenschaften> Version doppelklicken:

Version 3.5:

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

Version 4.1, 4.5:

enter image description here

11
jmunsch

Eine einfache Möglichkeit besteht darin, die Version zu überprüfen, indem Sie im Terminal psql --version eingeben

10
Alex Trn

Der Befehl pg_config gibt das Verzeichnis an, in dem die PostgreSQL-Programme installiert sind (--bindir), den Speicherort der C-Include-Dateien (--includedir) und der Objektcode-Bibliotheken (--libdir) sowie die Version von PostgreSQL (--version). :

$ pg_config --version
PostgreSQL 9.3.6
8
Donato

In meinem Fall

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

Hoffe, es wird jemandem helfen

8
Vikas Hardia

Wenn Sie Shell-Zugriff auf den Server haben (die Frage erwähnt op nicht, aber für den Fall, dass Sie haben), auf einem Debian/Ubuntu-System

Sudo apt-cache policy postgresql

welches die installierte Version ausgibt,

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

dabei ist Installed: <version> die installierte Postgres-Paketversion.

3

Ich weiß nicht, wie zuverlässig das ist, aber Sie können zwei Token der Version vollautomatisch erhalten:

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

So können Sie Pfade zu Binärdateien erstellen:

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

Ersetzen Sie einfach 9.2 mit diesem Befehl.

3
Alexey Petrenko

Wenn Select version() mit Memo zurückkehrt, verwenden Sie den Befehl folgendermaßen:

Select version::char(100) 

oder

Select version::varchar(100)
0
aTa