The pg_upgrade manpage in PG 14 and earlier claims that upgrades from
8.4 are supported, but that doesn't work:
/usr/lib/postgresql/14/bin/pg_upgrade -b /usr/lib/postgresql/8.4/bin -B /usr/lib/postgresql/14/bin -p 5432 -P 5433 -d
/var/lib/postgresql/8.4/upgr-o -D /etc/postgresql/8.4/upgr -D /etc/postgresql/14/upgr
Finding the real data directory for the target cluster ok
Performing Consistency Checks
-----------------------------
Checking cluster versions ok
The source cluster lacks some required control information:
latest checkpoint oldestXID
Cannot continue without required control information, terminating
Failure, exiting
8.4 -> 14/13/12/11/10/9.6 are all broken in the same way (using the
target version's pg_upgrade of course)
9.0 -> 14 and 8.4 -> 9.5 work.
8.4 -> 15 "works" in the sense of that the non-support is correctly
documented in the manpage and in the pg_upgrade output:
/usr/lib/postgresql/15/bin/pg_upgrade -b /usr/lib/postgresql/8.4/bin -B /usr/lib/postgresql/15/bin -p 5432 -P 5433 -d
/var/lib/postgresql/8.4/upgr-o -D /etc/postgresql/8.4/upgr -D /etc/postgresql/15/upgr
Finding the real data directory for the target cluster ok
Performing Consistency Checks
-----------------------------
Checking cluster versions
This utility can only upgrade from PostgreSQL version 9.2 and later.
Failure, exiting
Is that failure intentional, and just not documented properly, or is
that a bug?
Christoph