Why does the pg_dumpall command have a database option?
I'm trying to see if someone could answer to me why the pg_dumpall command
has a database option when it's designed to dump all the databases in a
PostgreSQL server instance. I'm only asking because when I create a .pgpass
file and try to use the pg_dumpall command, I'm still required to specify a
specific database even though the command itself should be targeting all
databases. Can anyone explain this to me a bit better?
Thanks,
On 6/20/19 1:03 PM, Espresso Beanies wrote:
I'm trying to see if someone could answer to me why the pg_dumpall
command has a database option when it's designed to dump all the
databases in a PostgreSQL server instance. I'm only asking because when
I create a .pgpass file and try to use the pg_dumpall command, I'm still
required to specify a specific database even though the command itself
should be targeting all databases. Can anyone explain this to me a bit
better?Thanks,
Because pg_dumpall is a client and needs to connect to a database to
kick start the process/fetch global information:
https://www.postgresql.org/docs/11/app-pg-dumpall.html
-l dbname
--database=dbname
Specifies the name of the database to connect to for dumping global
objects and discovering what other databases should be dumped. If not
specified, the postgres database will be used, and if that does not
exist, template1 will be used.
--
Adrian Klaver
adrian.klaver@aklaver.com
Will it still dump all of the databases or just the one it connects to?
On Thu, Jun 20, 2019 at 4:13 PM Adrian Klaver <adrian.klaver@aklaver.com>
wrote:
Show quoted text
On 6/20/19 1:03 PM, Espresso Beanies wrote:
I'm trying to see if someone could answer to me why the pg_dumpall
command has a database option when it's designed to dump all the
databases in a PostgreSQL server instance. I'm only asking because when
I create a .pgpass file and try to use the pg_dumpall command, I'm still
required to specify a specific database even though the command itself
should be targeting all databases. Can anyone explain this to me a bit
better?Thanks,
Because pg_dumpall is a client and needs to connect to a database to
kick start the process/fetch global information:https://www.postgresql.org/docs/11/app-pg-dumpall.html
-l dbname
--database=dbnameSpecifies the name of the database to connect to for dumping global
objects and discovering what other databases should be dumped. If not
specified, the postgres database will be used, and if that does not
exist, template1 will be used.--
Adrian Klaver
adrian.klaver@aklaver.com
On 21/06/2019 14:32, Espresso Beanies wrote:
Will it still dump all of the databases or just the one it connects to?
On Thu, Jun 20, 2019 at 4:13 PM Adrian Klaver <adrian.klaver@aklaver.com
<mailto:adrian.klaver@aklaver.com>> wrote:On 6/20/19 1:03 PM, Espresso Beanies wrote:
I'm trying to see if someone could answer to me why the pg_dumpall
command has a database option when it's designed to dump all the
databases in a PostgreSQL server instance. I'm only askingbecause when
I create a .pgpass file and try to use the pg_dumpall command,
I'm still
required to specify a specific database even though the command
itself
should be targeting all databases. Can anyone explain this to me
a bit
better?
Thanks,
Because pg_dumpall is a client and needs to connect to a database to
kick start the process/fetch global information:
It'll dump all the databases.
To expand on what Adrian said - PostgreSQL doesn't have a concept of
connecting just to the server - you always have to connect to a specific
database as well, no matter what you're actually doing. This is what the
"postgres" database is mostly used for.
HTH,
Ray.
--
Raymond O'Donnell // Galway // Ireland
ray@rodonnell.ie
On 6/21/19 6:32 AM, Espresso Beanies wrote:
Will it still dump all of the databases or just the one it connects to?
It will dump all the databases. It is just that pg_dumpall is a client
to the server and therefore needs to connect to a database within the
cluster to do it's work. That is true of all the programs listed here:
https://www.postgresql.org/docs/11/reference-client.html
Programs that do not have to connect can be found here:
https://www.postgresql.org/docs/11/reference-server.html
On Thu, Jun 20, 2019 at 4:13 PM Adrian Klaver <adrian.klaver@aklaver.com
<mailto:adrian.klaver@aklaver.com>> wrote:On 6/20/19 1:03 PM, Espresso Beanies wrote:
I'm trying to see if someone could answer to me why the pg_dumpall
command has a database option when it's designed to dump all the
databases in a PostgreSQL server instance. I'm only askingbecause when
I create a .pgpass file and try to use the pg_dumpall command,
I'm still
required to specify a specific database even though the command
itself
should be targeting all databases. Can anyone explain this to me
a bit
better?
Thanks,
Because pg_dumpall is a client and needs to connect to a database to
kick start the process/fetch global information:https://www.postgresql.org/docs/11/app-pg-dumpall.html
-l dbname
--database=dbnameSpecifies the name of the database to connect to for dumping
global
objects and discovering what other databases should be dumped. If not
specified, the postgres database will be used, and if that does not
exist, template1 will be used.--
Adrian Klaver
adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>
--
Adrian Klaver
adrian.klaver@aklaver.com