Thread: pg_dump - 8.3 - schemas
I am working with a database set up by someone else. They set it up so that most tables are in the public schema, but they also have a reports schema; database.public.tables and database.reports.tables. If I do a pg_dump of the database, I only get the public schema. If I do a dump with --schema=reports, I only get the reports schema. Is there a way to get all the schemas from a single pg_dump or am I forced to use separate ones? This is also for future issues where there may be more than 2. Thanks Edward W. Rouse
On 02/16/2012 10:59 AM, Edward W. Rouse wrote: > I am working with a database set up by someone else. They set it up so that > most tables are in the public schema, but they also have a reports schema; > database.public.tables and database.reports.tables. > > If I do a pg_dump of the database, I only get the public schema. If I do a > dump with --schema=reports, I only get the reports schema. Is there a way to > get all the schemas from a single pg_dump or am I forced to use separate > ones? This is also for future issues where there may be more than 2. The pg_dump should work. What is the exact command line statement you are using? Are doing both dumps as the same user? > > Thanks > > Edward W. Rouse > > -- Adrian Klaver adrian.klaver@gmail.com
To answer the second question first, yes; both as the same user. pg_dump -v -f $bkfile -F c -U $USER $DATABASE > -----Original Message----- > From: Adrian Klaver [mailto:adrian.klaver@gmail.com] > Sent: Thursday, February 16, 2012 2:22 PM > To: Edward W. Rouse > Cc: pgsql-sql@postgresql.org > Subject: Re: [SQL] pg_dump - 8.3 - schemas > > On 02/16/2012 10:59 AM, Edward W. Rouse wrote: > > I am working with a database set up by someone else. They set it up > so that > > most tables are in the public schema, but they also have a reports > schema; > > database.public.tables and database.reports.tables. > > > > If I do a pg_dump of the database, I only get the public schema. If I > do a > > dump with --schema=reports, I only get the reports schema. Is there a > way to > > get all the schemas from a single pg_dump or am I forced to use > separate > > ones? This is also for future issues where there may be more than 2. > > The pg_dump should work. > What is the exact command line statement you are using? > Are doing both dumps as the same user? > > > > > Thanks > > > > Edward W. Rouse > > > > > > > -- > Adrian Klaver > adrian.klaver@gmail.com
On 02/16/2012 11:31 AM, Edward W. Rouse wrote: > To answer the second question first, yes; both as the same user. > > pg_dump -v -f $bkfile -F c -U $USER $DATABASE So how are you determining that only the public schema is being dumped? One thing to check is the search_path setting in postgresql.conf. This can create the illusion that only one schema is available in a database. One way to check is to use the fully qualified name for a table you know to be in the reports schema. Ex: select * from reports.some_table; > > > > -- Adrian Klaver adrian.klaver@gmail.com
Well, when I do a restore using the created file, reports isn't there. i.e. the select from reports.table gives an error and, from psql, \l doesn't list it and \dn doesn't show it. But that all does work on the original database. > -----Original Message----- > From: pgsql-sql-owner@postgresql.org [mailto:pgsql-sql- > owner@postgresql.org] On Behalf Of Adrian Klaver > Sent: Thursday, February 16, 2012 2:39 PM > To: Edward W. Rouse > Cc: pgsql-sql@postgresql.org > Subject: Re: [SQL] pg_dump - 8.3 - schemas > > On 02/16/2012 11:31 AM, Edward W. Rouse wrote: > > To answer the second question first, yes; both as the same user. > > > > pg_dump -v -f $bkfile -F c -U $USER $DATABASE > > > So how are you determining that only the public schema is being dumped? > One thing to check is the search_path setting in postgresql.conf. This > can create the illusion that only one schema is available in a > database. > One way to check is to use the fully qualified name for a table you > know > to be in the reports schema. Ex: > > select * from reports.some_table; > > > > > > > > > > -- > Adrian Klaver > adrian.klaver@gmail.com > > -- > Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-sql
On 02/16/2012 12:17 PM, Edward W. Rouse wrote: > Well, when I do a restore using the created file, reports isn't there. i.e. > the select from reports.table gives an error and, from psql, \l doesn't list > it and \dn doesn't show it. But that all does work on the original database. What is the error reported? What do the Postgres logs show when you restore the data? Do a pg_restore -l against the dump file. This will list the contents of the dump. See if the schema and contents are there. > > -- Adrian Klaver adrian.klaver@gmail.com