Subject: postgresql-17 on debian bookworm - directories missing

From: Hu Bert <[email-masked]>
Date: Thu, 20 Nov 2025 12:35:28 +0100

Hi there,
i have a debian bookworm with postgresql-16 installed, from postgresql
repository. I wanted to install postgresql-17 and then do a an inplace
upgrade via pg_upgrade.

Install: apt install postgresql-17 postgresql-17-postgis-3
postgresql-17-postgis-3-scripts postgresql-client-17

But after the installation there's no v17 cluster:

pg_lsclusters
Ver Cluster Port Status Owner    Data directory              Log file
16  main    5432 online postgres /var/lib/postgresql/16/main
/var/log/postgresql/postgresql-16-main.log

and these directories are missing:
/etc/postgresql/17/
/var/lib/postgresql/17/

Same happens when i try to install postgresql-18.

Am i doing smth wrong? Did i miss anything?

Thx,
Hubert

---

From: rob stone <[email-masked]>
Date: Thu, 20 Nov 2025 23:26:29 +1100

> Am i doing smth wrong? Did i miss anything?

The binaries are at /usr/lib/postgresql/17 where the number 17
indicates the major version.

HTH
Rob

---

From: Hu Bert <[email-masked]>
Date: Thu, 20 Nov 2025 13:37:59 +0100

Hi Rob,

yes, this directory exists with all the files, but the rest doesn't -
so one has to create the other directories and the cluster manually?
"Long time ago" this happened when installing the packages - must've
changed at some point :-)

Thx,
Hubert

---

From: Álvaro Herrera <[email-masked]>
Date: Thu, 20 Nov 2025 13:46:52 +0100

> But after the installation there's no v17 cluster:

I think this is expected.  The Debian packages create a cluster when you
install the server packages only if you don't already have a cluster.
Here it's clearly that you do have one, so a new one isn't created.  You
could create one yourself with pg_createcluster.  However, if what you
want to do is to upgrade the 16 one, then I think you don't need to
create a new one, but instead use pg_upgradecluster which will create
one for you.

-- 
Álvaro Herrera               48°01'N 7°57'E  —  https://www.EnterpriseDB.com/

---

From: Hu Bert <[email-masked]>
Date: Thu, 20 Nov 2025 13:57:33 +0100

Hi Álvaro,

interesting - about one and a half year ago i upgraded postgresql from
14 to 16 - installed the v16 packages, and both versions and two
clusters were running.

upgrade:
/usr/lib/postgresql/16/bin/pg_upgrade --link --old-options "-c
config_file=/etc/postgresql/14/main/postgresql.conf" --new-options "-c
config_file=/etc/postgresql/16/main/postgresql.conf"
--old-bindir=/usr/lib/postgresql/14/bin/
--new-bindir=/usr/lib/postgresql/16/bin/
--old-datadir=/var/lib/postgresql/14/main
--new-datadir=/var/lib/postgresql/16/main --old-port=5432
--new-port=5433

So that must've changed in the past. However... so i have 2 options:

- create a v17 cluster and run pg_upgrade or
- run pg_upgradecluster

Have to check the 2nd command :-)

Thx,
Hubert

---

From: Adrian Klaver <[email-masked]>
Date: Thu, 20 Nov 2025 10:35:07 -0800

> changed at some point :-)

https://salsa.debian.org/postgresql/postgresql-common/-/commit/d9139f7777a42a39b5b6fabbffc9f020fad4dce5

https://www.postgresql.org/message-id/e8c0e0e43cf0458fa3a021dd0cb398c8%40bd.so.ch

-- 
Adrian Klaver
[email-masked]

---

From: Hu Bert <[email-masked]>
Date: Fri, 21 Nov 2025 06:54:14 +0100

Hi Adrian,

ah ok, so i wasn't the only one ;-) I did a couple of postgres
upgrades with pg_upgrade and installing the new posgres version in
parallel, that felt "normal" for me, so that's why i got confused. Thx
for the clarification! :-)

Hubert