Creating Postgres databases
===========================

デプロイメント中にPostgresデータベースを作成するには、 ``cluster_vars``
の下の\ ``postgres_databases``
またはconfig.ymlの特定のインスタンスの\ ``vars``
のリストにエントリを追加します。

.. code:: yaml

   cluster_vars:
     postgres_databases:
     - name: exampledb

     - name: complexdb
       owner: example
       encoding: UTF8
       lc_collate: de_DE.UTF-8
       lc_ctype: de_DE.UTF-8
       template: template0
       extensions:
       - name: hstore
       - name: dblink
       languages:
       - name: plperl
       - name: plpython
       tablespace: exampletablespace

上記の例では、2つのデータベースを作成します（TPA自分自身が作成することを決定した\ ``bdr_database``
などのデータベースを除く）。

各エントリは、作成するデータベースの\ ``name``
を指定する必要があります。他のすべての属性はオプションです。

``owner`` はデフォルトでは\ ``postgres``
ですが、任意の有効なユーザー名（ :ref:`postgres_users <The postgres Unix user>` のユーザー

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

``encoding`` 、\ ``lc_collate`` 、および\ ``lc_ctype``
の値は、デフォルトでinitdbの実行時に設定された\ ``postgres_locale``
になります（デフォルトでは、ターゲットシステムのLC_ALLまたはLANG設定が使用されます）。デフォルト以外のロケール設定でデータベースを作成する場合は、
``template: template0`` も指定する必要があります。

オプションで、データベースのデフォルトの\ ``tablespace``
を指定できます。表領域はすでに存在している必要があります（ :ref:`postgres_tablespaces <Creating Postgres tablespaces>` 
を参照）。

``extensions`` および\ ``languages``
のオプションのリストを指定して、各データベース内に作成できます（テンプレートデータベースから継承された拡張機能または言語に加えて）。必要なパッケージは、たとえば
 :ref:`extra_postgres_packages <Installing Postgres-related packages>`  に含めるなどして、インストールしておく必要があります。

TPAは ``postgres_databases``
に記載されていない既存のデータベースを削除せず、必要に応じて（
BDR用など）追加のデータベースを作成する場合があります。
