Creating Postgres tablespaces
=============================

デプロイメント中にPostgresテーブルスペースを作成するには、
config.ymlの\ ``cluster_vars`` または特定のインスタンスの\ ``vars``
の下の\ ``postgres_tablespaces`` に名前と場所を定義します。

``volume_for: postgres_tablespace`` セットと\ ``tablespace_name``
を定義して :ref:`Filesystem configuration <Filesystem configuration>` を実行すると、それらはデフォルトエントリとして\ ``postgres_tablespaces``
に追加されます。

.. code:: yaml

   cluster_vars:
     postgres_tablespaces:
       explicit:
         location: /some/path

   instances:

   - Name: example
     …
     volumes:
     - device_name: /dev/xvdh
       …
       vars:
         volume_for: postgres_tablespace
         tablespace_name: implicit

上記の例では、2つのテーブルスペースを作成します。明示的 /some/path
と暗黙的 ボリュームの別のマウントポイントを指定しない限り、デフォルトで
/opt/postgres/tablespaces/implicit/tablespace_data に。

すべての\ ``postgres_tablespace`` ボリュームには\ ``tablespace_name``
を定義する必要があります。テーブルスペースの場所は、ボリュームのマウントポイントから取得されます。

``postgres_tablespaces``
のすべてのエントリは、表領域名をキーとしてとその\ ``location``
を指定する必要があります。テーブルスペースの場所を明示的に指定する場合は、PGDATA内にテーブルスペースを置かず、ボリュームマウントポイントをテーブルスペースの場所として直接使用しないでください。\ ``lost+found``
は、一部のツールを混乱させて、ディレクトリが空でないと判断します。

デフォルトでは、テーブルスペース\ ``owner`` は\ ``postgres``
ですが、任意の有効なユーザー名に設定できます :ref:`Creating Postgres users <Creating Postgres users>` のユーザー

この時点で作成されています）。

ストリーミングレプリカには、上流のインスタンスと同じ\ ``postgres_tablespace``
ボリュームと\ ``postgres_tablespaces`` 設定が必要です

:ref:`Creating Postgres databases <Creating Postgres databases>` でデータベースのデフォルトの表領域を設定できます。
