Creating Postgres databases¶
デプロイメント中にPostgresデータベースを作成するには、 cluster_vars
の下のpostgres_databases
またはconfig.ymlの特定のインスタンスのvars
のリストにエントリを追加します。
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
ですが、任意の有効なユーザー名( postgres_users のユーザー
この時点で作成されます)。
encoding 、lc_collate 、およびlc_ctype
の値は、デフォルトでinitdbの実行時に設定されたpostgres_locale
になります(デフォルトでは、ターゲットシステムのLC_ALLまたはLANG設定が使用されます)。デフォルト以外のロケール設定でデータベースを作成する場合は、
template: template0 も指定する必要があります。
オプションで、データベースのデフォルトのtablespace
を指定できます。表領域はすでに存在している必要があります( postgres_tablespaces
を参照)。
extensions およびlanguages
のオプションのリストを指定して、各データベース内に作成できます(テンプレートデータベースから継承された拡張機能または言語に加えて)。必要なパッケージは、たとえば
extra_postgres_packages に含めるなどして、インストールしておく必要があります。
TPAは postgres_databases
に記載されていない既存のデータベースを削除せず、必要に応じて(
BDR用など)追加のデータベースを作成する場合があります。