<xref linkend="app-pgdump"/> for this purpose. The basic usage of this
command is:
<synopsis>
-pg_dump <replaceable class="parameter">dbname</replaceable> > <replaceable class="parameter">outfile</replaceable>
+pg_dump <replaceable class="parameter">dbname</replaceable> > <replaceable class="parameter">dumpfile</replaceable>
</synopsis>
As you see, <application>pg_dump</application> writes its result to the
standard output. We will see below how this can be useful.
be read in by the <application>psql</application> program. The
general command form to restore a dump is
<synopsis>
-psql <replaceable class="parameter">dbname</replaceable> < <replaceable class="parameter">infile</replaceable>
+psql <replaceable class="parameter">dbname</replaceable> < <replaceable class="parameter">dumpfile</replaceable>
</synopsis>
- where <replaceable class="parameter">infile</replaceable> is the
+ where <replaceable class="parameter">dumpfile</replaceable> is the
file output by the <application>pg_dump</application> command. The database <replaceable
class="parameter">dbname</replaceable> will not be created by this
command, so you must create it yourself from <literal>template0</literal>
behavior and have <application>psql</application> exit with an
exit status of 3 if an SQL error occurs:
<programlisting>
-psql --set ON_ERROR_STOP=on dbname < infile
+psql --set ON_ERROR_STOP=on dbname < dumpfile
</programlisting>
Either way, you will only have a partially restored database.
Alternatively, you can specify that the whole dump should be
cluster, and also preserves cluster-wide data such as role and
tablespace definitions. The basic usage of this command is:
<synopsis>
-pg_dumpall > <replaceable>outfile</replaceable>
+pg_dumpall > <replaceable>dumpfile</replaceable>
</synopsis>
The resulting dump can be restored with <application>psql</application>:
<synopsis>
-psql -f <replaceable class="parameter">infile</replaceable> postgres
+psql -f <replaceable class="parameter">dumpfile</replaceable> postgres
</synopsis>
(Actually, you can specify any existing database name to start from,
but if you are loading into an empty cluster then <literal>postgres</literal>