diff --git a/pillar.example b/pillar.example index f3bdd05..3cb072d 100644 --- a/pillar.example +++ b/pillar.example @@ -51,9 +51,14 @@ postgres: template: 'template0' lc_ctype: 'C.UTF-8' lc_collate: 'C.UTF-8' + # optional schemas to enable on database + schemas: + uuid_ossp: + owner: localUser # optional extensions to enable on database extensions: - - uuid-ossp + uuid-ossp: + schema: uuid_ossp db2: owner: 'localUser' user: 'remoteUser' @@ -62,7 +67,7 @@ postgres: lc_collate: 'C.UTF-8' # optional extensions to enable on database extensions: - - postgis + postgis: # This section will append your configuration to postgresql.conf. postgresconf: | listen_addresses = 'localhost,*' diff --git a/postgres/init.sls b/postgres/init.sls index c8577b9..e8559b3 100644 --- a/postgres/init.sls +++ b/postgres/init.sls @@ -118,13 +118,32 @@ postgres-db-{{ name }}: - postgres_user: postgres-user-{{ db.get('user') }} {% endif %} +{% if db.schemas is defined %} +{% for schema, schema_args in db.schemas.items() %} +postgres-schema-{{ schema }}-for-db-{{ name }}: + postgres_schema.present: + - name: {{ schema }} + - dbname: {{ name }} +{% if schema_args is not none %} +{% for arg, value in schema_args.items() %} + - {{ arg }}: {{ value }} +{% endfor %} +{% endif %} +{% endfor %} +{% endif %} + {% if db.extensions is defined %} -{% for ext in db.extensions %} +{% for ext, ext_args in db.extensions.items() %} postgres-ext-{{ ext }}-for-db-{{ name }}: postgres_extension.present: - name: {{ ext }} - user: {{ db.get('runas', 'postgres') }} - maintenance_db: {{ name }} +{% if ext_args is not none %} +{% for arg, value in ext_args.items() %} + - {{ arg }}: {{ value }} +{% endfor %} +{% endif %} {% endfor %} {% endif %} {% endfor%}