Обсуждение: pg_dump is not backwards compatible in PG12
PG 12 bumped the pg_backup_archiver version to 1.14, however this version is not supported in past versions of pg_backup_archiver, resulting in restores to earlier versions not working.
- Supported pg_backup_archiver versions in 12: https://github.com/postgres/postgres/blob/REL_12_0/src/bin/pg_dump/pg_backup_archiver.h#L77-L103
The following steps will reproduce the error:
1. pg_dump on a 12.1 database
2. pg_restore to a postgres db on a version < 12 (in my case 9.6). The error: `pg_restore: [archiver] unsupported version (1.14) in file header`
- Supported versions in 11: https://github.com/postgres/postgres/blob/REL_11_STABLE/src/bin/pg_dump/pg_backup_archiver.h#L77-L102
The following steps will reproduce the error:
1. pg_dump on a 12.1 database
2. pg_restore to a postgres db on a version < 12 (in my case 9.6). The error: `pg_restore: [archiver] unsupported version (1.14) in file header`
Questions/observations:
1. Is it expected that pg_dump will produce backwards incompatible dumps? If so, is this documented somewhere?
2. The release notes don't mention this at all as far as I could see. Should they?
3. Should this be a bug? This is the first backwards incompatibility in pg_dump (that I can see) since 9.6
1. Is it expected that pg_dump will produce backwards incompatible dumps? If so, is this documented somewhere?
2. The release notes don't mention this at all as far as I could see. Should they?
3. Should this be a bug? This is the first backwards incompatibility in pg_dump (that I can see) since 9.6
Thanks,
Vera Johne
Vera Gangeskar Johne <vjohne@salesforce.com> writes:
> PG 12 bumped the pg_backup_archiver version to 1.14, however this version
> is not supported in past versions of pg_backup_archiver, resulting in
> restores to earlier versions not working.
Yup. Use a newer version of pg_restore.
> 1. Is it expected that pg_dump will produce backwards incompatible dumps?
It's happened before, and it will happen again, no doubt.
> 2. The release notes don't mention this at all as far as I could see.
> Should they?
Possibly. In practice, backwards-incompatibility of the SQL contained
in the dump is a bigger issue most of the time than the dump file format
proper, and there are issues of that sort in almost every major release.
> 3. Should this be a bug?
No. It's impractical to freeze that file format, because we keep adding
new things that pg_dump has to deal with (as the version history you found
shows). Maybe it could've been designed to be more extension-friendly,
but such a redesign would itself be backwards-incompatible.
regards, tom lane