<!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/pg_dumpall.sgml,v 1.60 2007/01/25 02:30:32 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/pg_dumpall.sgml,v 1.61 2007/01/25 02:46:33 momjian Exp $
PostgreSQL documentation
-->
<variablelist>
<varlistentry>
<term>-h <replaceable>host</replaceable></term>
+ <term>--host=<replaceable>host</replaceable></term>
<listitem>
<para>
Specifies the host name of the machine on which the database
</para>
</listitem>
</varlistentry>
+
+ <varlistentry>
+ <term>-l <replaceable>dbname</replaceable></term>
+ <term>--database=<replaceable>dbname</replaceable></term>
+ <listitem>
+ <para>
+ Specifies the name of the database to connect to to dump global
+ objects and discover what other databases should be dumped. If
+ not specified, the <quote>postgres</quote> database will be used,
+ and if that does not exist, <quote>template1</quote> will be used.
+ </para>
+ </listitem>
+ </varlistentry>
<varlistentry>
<term>-p <replaceable>port</replaceable></term>
+ <term>--port=<replaceable>port</replaceable></term>
<listitem>
<para>
Specifies the TCP port or local Unix domain socket file
<varlistentry>
<term>-U <replaceable>username</replaceable></term>
+ <term>--username=<replaceable>username</replaceable></term>
<listitem>
<para>
Connect as the given user.
<varlistentry>
<term>-W</term>
+ <term>--password</term>
<listitem>
<para>
Force a password prompt. This should happen automatically if
* Portions Copyright (c) 1994, Regents of the University of California
*
*
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.87 2007/01/25 02:30:32 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.88 2007/01/25 02:46:33 momjian Exp $
*
*-------------------------------------------------------------------------
*/
char *pghost = NULL;
char *pgport = NULL;
char *pguser = NULL;
+ char *pgdb = NULL;
bool force_password = false;
bool data_only = false;
bool globals_only = false;
{"globals-only", no_argument, NULL, 'g'},
{"host", required_argument, NULL, 'h'},
{"ignore-version", no_argument, NULL, 'i'},
+ {"database", required_argument, NULL, 'l'},
{"oids", no_argument, NULL, 'o'},
{"no-owner", no_argument, NULL, 'O'},
{"port", required_argument, NULL, 'p'},
pgdumpopts = createPQExpBuffer();
- while ((c = getopt_long(argc, argv, "acdDgh:ioOp:rsS:tU:vWxX:", long_options, &optindex)) != -1)
+ while ((c = getopt_long(argc, argv, "acdDgh:il:oOp:rsS:tU:vWxX:", long_options, &optindex)) != -1)
{
switch (c)
{
ignoreVersion = true;
appendPQExpBuffer(pgdumpopts, " -i");
break;
+
+ case 'l':
+ pgdb = optarg;
+ break;
case 'o':
appendPQExpBuffer(pgdumpopts, " -o");
}
/*
- * First try to connect to database "postgres", and failing that
+ * If there was a database specified on the command line, use that,
+ * otherwise try to connect to database "postgres", and failing that
* "template1". "postgres" is the preferred choice for 8.1 and later
* servers, but it usually will not exist on older ones.
*/
- conn = connectDatabase("postgres", pghost, pgport, pguser,
+ if (pgdb)
+ {
+ conn = connectDatabase(pgdb, pghost, pgport, pguser,
+ force_password, false);
+
+ if (!conn)
+ {
+ fprintf(stderr, _("%s: could not connect to database \"%s\"\n"),
+ progname, pgdb);
+ exit(1);
+ }
+ }
+ else
+ {
+ conn = connectDatabase("postgres", pghost, pgport, pguser,
force_password, false);
- if (!conn)
- conn = connectDatabase("template1", pghost, pgport, pguser,
- force_password, true);
+ if (!conn)
+ conn = connectDatabase("template1", pghost, pgport, pguser,
+ force_password, true);
+
+ if (!conn)
+ {
+ fprintf(stderr, _("%s: could not connect to databases \"postgres\" or \"template1\". Please specify an alternative database\n"),
+ progname);
+ fprintf(stderr, _("Try \"%s --help\" for more information.\n"),
+ progname);
+ exit(1);
+ }
+ }
/*
* Get the active encoding and the standard_conforming_strings setting, so
printf(_("\nConnection options:\n"));
printf(_(" -h, --host=HOSTNAME database server host or socket directory\n"));
+ printf(_(" -l, --database=dbname specify an alternate default database\n"));
printf(_(" -p, --port=PORT database server port number\n"));
printf(_(" -U, --username=NAME connect as specified database user\n"));
printf(_(" -W, --password force password prompt (should happen automatically)\n"));