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用など)追加のデータベースを作成する場合があります。