Close

How to view which Postgres version is running

Posted by: AJ Welch

Viewing which version (or versions) of PostgreSQL is active on your system is a reasonably simple process, but there are a number of methods that can be used. In this tutorial we’ll briefly explore four methods for finding your version of PostgreSQL, including both the client and the server versions.

Note: As per usual when working with PostgreSQL, be sure you are logged into your shell prompt from a non-root user with Postgres privileges for these commands to function properly.


Using the shell command line


Both the server and client Postgres installations can be queried using their respective command line utilities.

Viewing the server version

To find the Postgres server version from the shell command line, simply issue a postgres command with the -V flag (for version):

$ postgres -V
postgres (PostgreSQL) 9.3.10

In the event that the postgres command is not found, you may need to locate the directory of the utility. This can be done by issuing the locate bin/postgres command:

$ locate bin/postgres
/usr/lib/postgresql/9.3/bin/postgres

Now with the direct path to the postgres utility, you can call it with the -V flag as illustrated above:

$ /usr/lib/postgresql/9.3/bin/postgres -V
postgres (PostgreSQL) 9.3.10

Viewing the client version

To view the client version, again simply pass the -V flag to the psql client utility command:

$ psql -V
psql (PostgreSQL) 9.3.10

Similar to the above, if you cannot find the utility – or have multiple installations of PostgreSQL on that machine – you can easily locate psql:

$ locate bin/psql
/usr/bin/psql
/usr/lib/postgresql/9.3/bin/psql

Then issue a direct call to the located psql utility for the version:

$ /usr/lib/postgresql/9.3/bin/psql -V
psql (PostgreSQL) 9.3.10

Using SQL


It is also possible to determine the Postgres version from within a Postgres SQL prompt via a simple SQL statement.

$ mysql --user=username

Viewing the server version

To determine the server version using an SQL statement, simply issue the SELECT version(); command:

=# SELECT version();
                                              version
------------------------------------------------------------------------------------------------------
PostgreSQL 9.3.10 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2, 64-bit
(1 row)

You’ll see the full version output information as seen in the example above.

Alternatively, you can query for the specific server version, in the standard major.minor.patch format, by using the SHOW command:

=# SHOW server_version;
 server_version
----------------
 9.3.10
 (1 row)

SHOW is used to display current run-time parameters, which are essentially just a table of name/setting pairs. By issuing the SHOW server_version; statement above, we’re asking Postgres to retrieve the current parameter value of server_version, which of course is the version of PostgreSQL currently running.