In Karen Jex's presentation today at pgconf.dev [0] one of the examples given was that users inadvertently rely on pg_dump as their primary backup tool, when better solutions exist. The pg_dump man page is arguably misleading in that it starts with

"pg_dump is a utility for backing up a PostgreSQL database."

I suggest toning this down a little bit. In the attached patch, I have replaced most uses of "backup" with "export" and added a short note that pg_dump is not a general-purpose backup tool.

Suggestions for word-smithing welcome.


[0]: https://www.pgevents.ca/events/pgconfdev2024/schedule/session/126-how-postgres-is-misused-and-abused-in-the-wild/
From dbf7c0785b9f2ddf85d19f3e41c22c72a600bb66 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <pe...@eisentraut.org>
Date: Wed, 29 May 2024 16:01:26 -0700
Subject: [PATCH] doc: Avoid too prominent use of "backup" on pg_dump man page

---
 doc/src/sgml/ref/pg_dump.sgml    | 12 ++++++++----
 doc/src/sgml/ref/pg_restore.sgml |  2 +-
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/doc/src/sgml/ref/pg_dump.sgml b/doc/src/sgml/ref/pg_dump.sgml
index 08d775379fd..af7949ee111 100644
--- a/doc/src/sgml/ref/pg_dump.sgml
+++ b/doc/src/sgml/ref/pg_dump.sgml
@@ -36,16 +36,20 @@
   <title>Description</title>
 
   <para>
-   <application>pg_dump</application> is a utility for backing up a
+   <application>pg_dump</application> is a utility for exporting a
    <productname>PostgreSQL</productname> database. It makes consistent
-   backups even if the database is being used concurrently.
+   exports even if the database is being used concurrently.
    <application>pg_dump</application> does not block other users
    accessing the database (readers or writers).
+   Note, however, that except in simple cases,
+   <application>pg_dump</application> is generally not the right choice for
+   taking regular backups of production databases.  See <xref
+   linkend="backup"/> for further discussion.
   </para>
 
   <para>
    <application>pg_dump</application> only dumps a single database.
-   To back up an entire cluster, or to back up global objects that are
+   To export an entire cluster, or to export global objects that are
    common to all databases in a cluster (such as roles and tablespaces),
    use <xref linkend="app-pg-dumpall"/>.
   </para>
@@ -76,7 +80,7 @@ <title>Description</title>
    <application>pg_restore</application>,
    <application>pg_dump</application> provides a flexible archival and
    transfer mechanism. <application>pg_dump</application> can be used to
-   backup an entire database, then <application>pg_restore</application>
+   export an entire database, then <application>pg_restore</application>
    can be used to examine the archive and/or select which parts of the
    database are to be restored. The most flexible output file formats are
    the <quote>custom</quote> format (<option>-Fc</option>) and the
diff --git a/doc/src/sgml/ref/pg_restore.sgml b/doc/src/sgml/ref/pg_restore.sgml
index 2e3ba802581..b8b27e1719e 100644
--- a/doc/src/sgml/ref/pg_restore.sgml
+++ b/doc/src/sgml/ref/pg_restore.sgml
@@ -781,7 +781,7 @@ <title>Options</title>
         Require that each schema
         (<option>-n</option>/<option>--schema</option>) and table
         (<option>-t</option>/<option>--table</option>) qualifier match at
-        least one schema/table in the backup file.
+        least one schema/table in the file to be restored.
        </para>
       </listitem>
      </varlistentry>
-- 
2.45.1

Reply via email to