On Wed, 2020-05-20 at 10:06 +0200, Guillaume Lelarge wrote: > I've discovered something today that I didn't really expect. > When a user dumps a database with the --schema flag of pg_dump, > extensions in this schema aren't dumped. As far as I can tell, > the documentation isn't clear about this ("Dump only schemas > matching pattern; this selects both the schema itself, and all > its contained objects."), though the source code definitely is > ("We dump all user-added extensions by default, or none of them > if include_everything is false (i.e., a --schema or --table > switch was given).", in pg_dump.c). > > I was wondering the reason behind this choice. If anyone knows, > I'd be happy to hear about it. > > I see two things: > * it's been overlooked, and we should dump all the extensions > available in a schema if this schema has been selected through > the --schema flag. > * it's kind of like the large objects handling, and I'd pretty > interested in adding a --extensions (as the same way there is a > --blobs flag).
I am not sure if there is a good reason for the current behavior, but I'd favor the second solution. I think as extensions as belonging to the database rather than the schema; the schema is just where the objects are housed. Yours, Laurenz Albe