Thread: pg_dump 17 produces files incompatible with older server versions
Hello We're developing a rails application and part of our development workflow involves dumping out the database schema using pg_dump, which is restored whenever we drop and create our development database. As of version 17 we now have SET transaction_timeout = 0 in the schema file. Unfortunately we use the latest version of the client tools (ie pg_dump and kin) but we run the same database server version as we use in production (12) and so now we're unable to import our database schema with the error below: ERROR: unrecognized configuration parameter "transaction_timeout" It might be easier for us if we could configure pg_dump to _not_ output setting runtime parameters - they're not that important for the use case of applying a schema to a database for local development. Are there any other solutions to this issue? It could be quite troublesome for us as we have a few different postgres server versions in use in different applications but we use the same set of client tools for all of them. Best, -- Sam Kidman Web Developer Melbourne 0498 592 582 sam@fresho.com www.fresho.com
Re: pg_dump 17 produces files incompatible with older server versions
From
"David G. Johnston"
Date:
On Wed, Oct 2, 2024, 11:17 Sam Kidman <sam@fresho.com> wrote:
Unfortunately we use the latest version of the client tools (ie
pg_dump and kin) but we run the same database server version as we use
in production (12) and so now we're unable to import our database
schema with the error below:
You are operating in an unsupported manner and there is no goal to support it, aside from psql.
David J.
On 10/1/24 22:23, Sam Kidman wrote: > Hello > > We're developing a rails application and part of our development > workflow involves dumping out the database schema using pg_dump, which > is restored whenever we drop and create our development database. > > As of version 17 we now have SET transaction_timeout = 0 in the schema file. > > Unfortunately we use the latest version of the client tools (ie > pg_dump and kin) but we run the same database server version as we use > in production (12) and so now we're unable to import our database > schema with the error below: https://www.postgresql.org/docs/current/app-pgdump.html "Also, it is not guaranteed that pg_dump's output can be loaded into a server of an older major version — not even if the dump was taken from a server of that version. Loading a dump file into an older server may require manual editing of the dump file to remove syntax not understood by the older server. " Use the Postgres 12 version of pg_dump to dump if you want to restore to Postgres 12 instance. > > ERROR: unrecognized configuration parameter "transaction_timeout" Did the above actually stop the restore? > > It might be easier for us if we could configure pg_dump to _not_ > output setting runtime parameters - they're not that important for the > use case of applying a schema to a database for local development. > > Are there any other solutions to this issue? It could be quite > troublesome for us as we have a few different postgres server versions > in use in different applications but we use the same set of client > tools for all of them. > > Best, > -- Adrian Klaver adrian.klaver@aklaver.com
> On 2 Oct 2024, at 07:23, Sam Kidman <sam@fresho.com> wrote: > Are there any other solutions to this issue? It could be quite > troublesome for us as we have a few different postgres server versions > in use in different applications but we use the same set of client > tools for all of them. This is per design of pg_dump, the documentation states the following: "it is not guaranteed that pg_dump's output can be loaded into a server of an older major version — not even if the dump was taken from a server of that version. Loading a dump file into an older server may require manual editing of the dump file to remove syntax not understood by the older server." Running the appropriate version of pg_dump for the target cluster, or applying manual (or scripted) editing of the dump file is the option. -- Daniel Gustafsson