]> granicus.if.org Git - postgresql/commitdiff
doc: Clarify CREATE TABLESPACE documentation
authorPeter Eisentraut <peter_e@gmx.net>
Mon, 24 Sep 2018 12:47:09 +0000 (14:47 +0200)
committerPeter Eisentraut <peter_e@gmx.net>
Mon, 1 Oct 2018 12:07:01 +0000 (14:07 +0200)
Be more specific about when and how to create the directory and what
permissions it should have.

Discussion: https://www.postgresql.org/message-id/flat/5ca60e1a-26f9-89fd-e912-021dd2b8afe2%40gmail.com

doc/src/sgml/ref/create_tablespace.sgml

index 18fa5f0ebf08af4b12fe7dde31048c196e2fcd13..c621ec2c6bf802e90bf7c6c4df8d8facf10abe5f 100644 (file)
@@ -92,7 +92,8 @@ CREATE TABLESPACE <replaceable class="parameter">tablespace_name</replaceable>
       <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 @@ CREATE TABLESPACE <replaceable class="parameter">tablespace_name</replaceable>
   <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>