Hello. Was trying to import a database from a cloud deployment, and ran into this.
Exported the database with: * pg_dump (PostgreSQL) 12.20 (Ubuntu 12.20-0ubuntu0.20.04.1) * RDS PostgreSQL 12.19 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-12), 64-bit This produced a dump file of version 1.16, at least according to 'file'. Trying to import the same dump on another (Fedora) machine, tried: * pg_restore (PostgreSQL) 12.22 <- from PGDG * pg_restore (PostgreSQL) 16.8 <- from Fedora Both complain that they can't process the dump because dump version 1.16 is not supported. Both packages are latest from their respective repositories. I'm not sure whether the server has any say in the version of the dump file, I assume it doesn't. So, how come older software (according to versions) produces dump files with a greater version than the newer software can understand? Is this Ubuntu package maintainers messing things up? Given a pg_dump, it would be nice if its "-V" output would say which version of the dump it would produce, and a pg_restore - what's the max (and min, if that's a thing) version of the dump that it will accept. That would be just super-helpful in finding the right combination of tools. I ended up running PGDG's 16 pg_dump ((PostgreSQL) 16.8 (Ubuntu 16.8-1.pgdg22.04+1)) on Ubuntu, which produced a 1.15-0 dump. Thank you, Pawel.