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