v12 and pg_restore -f-
Justin Pryzby <pryzby@telsasoft.com>
From: Justin Pryzby <pryzby@telsasoft.com>
To: pgsql-general@lists.postgresql.org
Date: 2019-10-06T19:08:39Z
Lists: pgsql-hackers, pgsql-general
This is a "heads up" for others upgrading to v12. I found a solution for our use case, but it'd be easy to miss this, even if you read the release notes. I saw this and updated our scripts with pg_restore -f- https://www.postgresql.org/docs/12/release-12.html |In pg_restore, require specification of -f - to send the dump contents to standard output (Euler Taveira) |Previously, this happened by default if no destination was specified, but that was deemed to be unfriendly. What I didn't realize at first is that -f- has no special meaning in v11 - it just writes a file called ./- And it's considered untennable to change behavior of v11. In our use, that was being piped to sed, which then saw nothing on its stdin and just exits.. I changed our script to use pg_restore -f /dev/stdout, which seems to be portable across postgres versions for the OS distribution we're running. Unfortunately, I can't think of anything portable across *OS* or useful to include in documentation. In the worst case, someone might need to call pg_restore differently based on its version. Justin
Commits
-
Change pg_restore -f- to dump to stdout instead of to ./-
- 5ee8f0fe13b4 10.11 landed
- d38635725cad 9.5.20 landed
- 12a51e2ebea7 9.6.16 landed
- 9fb25fda6d56 9.4.25 landed
- 3574c0ac0509 11.6 landed