On 11/09/2018 17:10, Peter Eisentraut wrote:
> On 07/09/2018 17:59, Maksim Milyutin wrote:
>> those directories was that user). The error message "could not set 
>> permissions on directory ..." disoriented that user. The need to change 
>> the owner of those directories came after careful reading of 
>> documentation. I think it would be helpful to show the proposed hint to 
>> more operatively resolve the problem.
> 
> I think it might be worth clarifying the documentation instead.  I'm
> looking at the CREATE TABLESPACE reference page and it's not super clear
> on first reading.

How about the attached patch?

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
From eb0796921b6ebfe2375037d903a081a7b8f45c0b Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <pete...@gmx.net>
Date: Mon, 24 Sep 2018 14:47:09 +0200
Subject: [PATCH] doc: Clarify CREATE TABLESPACE documentation

Be more specific about when and how to create the directory and what
permissions it should have.
---
 doc/src/sgml/ref/create_tablespace.sgml | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/doc/src/sgml/ref/create_tablespace.sgml 
b/doc/src/sgml/ref/create_tablespace.sgml
index 18fa5f0ebf..c621ec2c6b 100644
--- a/doc/src/sgml/ref/create_tablespace.sgml
+++ b/doc/src/sgml/ref/create_tablespace.sgml
@@ -92,7 +92,8 @@ <title>Parameters</title>
       <listitem>
        <para>
         The directory that will be used for the tablespace. The directory
-        should be empty and must be owned by the
+        must exist (<command>CREATE TABLESPACE</command> will not create it),
+        should be empty, and must be owned by the
         <productname>PostgreSQL</productname> system user.  The directory must 
be
         specified by an absolute path name.
        </para>
@@ -137,15 +138,23 @@ <title>Notes</title>
   <title>Examples</title>
 
   <para>
-   Create a tablespace <literal>dbspace</literal> at 
<literal>/data/dbs</literal>:
+   To create a tablespace <literal>dbspace</literal> at file system location
+   <literal>/data/dbs</literal>, first create the directory using operating
+   system facilities and set the correct ownership:
+<programlisting>
+mkdir /data/dbs
+chown postgres:postgres /data/dbs
+</programlisting>
+   Then issue the tablespace creation command inside
+   <productname>PostgreSQL</productname>:
 <programlisting>
 CREATE TABLESPACE dbspace LOCATION '/data/dbs';
 </programlisting>
   </para>
 
   <para>
-   Create a tablespace <literal>indexspace</literal> at 
<literal>/data/indexes</literal>
-   owned by user <literal>genevieve</literal>:
+   To create a tablespace owned by a different database user, use a command
+   like this:
 <programlisting>
 CREATE TABLESPACE indexspace OWNER genevieve LOCATION '/data/indexes';
 </programlisting></para>
-- 
2.19.0

Reply via email to