How do I set which PostgreSQL version is to be used by default?

Solution 1:

The various PostgreSQL command line tools will talk to the server listening on the default port (5432) by default.

You can determine which port each server is listening on by looking for the port variable in the /etc/postgresql/$VERSION/main/postgresql.conf file for the relevant server.

To get the command line tools to talk to the other server by default, you have two options:

First, you could switch the ports the two servers are listening on by editing the previously mentioned configuration files and then restarting both servers (you'll probably want to stop each one before starting either).

Alternatively, you can set the PGPORT environment variable to the port number of the desired default server. That should affect all applications using the PostgreSQL client library.


To list the contents of each database cluster use psql -l -p PORT_NUMBER. To migrate data see section "24.4. Migration Between Releases" in the PostgreSQL documentation.

Deleting old versions of PostgreSQL saves wear and tear on laptops & SSDs, through reduction of disk writes.

Solution 2:

If you want to get rid of a version so the other one becomes default...

# see what you've got...
pg_lsclusters

# drop v13
sudo pg_dropcluster 13 main --stop