<refsect1 id="pg-dump-notes">
<title>Notes</title>
+
+ <para>
+ If your installation has any local additions to the template1 database,
+ be careful to restore the output of <command>pg_dump</command> into a
+ truly empty database; otherwise you are likely to get errors due to
+ duplicate definitions of the added objects. To make an empty database
+ without any local additions, copy from template0 not template1,
+ for example:
+<programlisting>
+CREATE DATABASE foo WITH TEMPLATE = template0;
+</programlisting>
+ </para>
+
<para>
- <command>pg_dump</command> has a few limitations.
+ <command>pg_dump</command> has a few limitations:
<itemizedlist>
<listitem>
Notes
</title>
+ <para>
+ If your installation has any local additions to the template1 database,
+ be careful to load the output of <command>pg_restore</command> into a
+ truly empty database; otherwise you are likely to get errors due to
+ duplicate definitions of the added objects. To make an empty database
+ without any local additions, copy from template0 not template1,
+ for example:
+<programlisting>
+CREATE DATABASE foo WITH TEMPLATE = template0;
+</programlisting>
+ </para>
+
<para>
The limitations of <command>pg_restore</command> are detailed below.
<itemizedlist>
<listitem>
<para>
- When restoring data to a table, <command>pg_restore</command> emits queries
+ When restoring data to a pre-existing table, <command>pg_restore</command> emits queries
to disable triggers on user tables before inserting the data then emits queries to
re-enable them after the data has been inserted. If the restore is stopped in the
middle, the system catalogs may be left in the wrong state.
<para>
See the <xref linkend="app-pgdump"> documentation for details on
- limitation of <command>pg_dump</command>.
+ limitations of <command>pg_dump</command>.
</para>
</refsect1>