dd797ba6a7
We were running into conflicts, because having initialized the roles (users) and databases, trying to import leads to errors (role XXX already exists, etc.). We were previously ignoring the Synapse database (`homeserver`) when upgrading/importing, because that one gets created by default whenever the container starts. For our additional databases, it's a similar situation now. It's not created by default as soon as Postgres starts with an empty database, but rather we create it as part of running the playbook. So we either need to skip those role/database creation statements while upgrading/importing, or to avoid creating the additional database and rely on the import for that. I've gone for the former, because it's already similar to what we were doing and it's simpler (it lets `setup_postgres.yml` be the same in all scenarios).
69 lines
3.3 KiB
YAML
69 lines
3.3 KiB
YAML
matrix_postgres_enabled: true
|
|
|
|
matrix_postgres_connection_hostname: ""
|
|
matrix_postgres_connection_username: ""
|
|
matrix_postgres_connection_password: ""
|
|
matrix_postgres_db_name: ""
|
|
|
|
matrix_postgres_base_path: "{{ matrix_base_data_path }}/postgres"
|
|
matrix_postgres_data_path: "{{ matrix_postgres_base_path }}/data"
|
|
|
|
matrix_postgres_docker_image_v9: "docker.io/postgres:9.6.20-alpine"
|
|
matrix_postgres_docker_image_v10: "docker.io/postgres:10.15-alpine"
|
|
matrix_postgres_docker_image_v11: "docker.io/postgres:11.10-alpine"
|
|
matrix_postgres_docker_image_v12: "docker.io/postgres:12.5-alpine"
|
|
matrix_postgres_docker_image_v13: "docker.io/postgres:13.1-alpine"
|
|
matrix_postgres_docker_image_latest: "{{ matrix_postgres_docker_image_v13 }}"
|
|
|
|
# This variable is assigned at runtime. Overriding its value has no effect.
|
|
matrix_postgres_docker_image_to_use: '{{ matrix_postgres_docker_image_latest }}'
|
|
|
|
matrix_postgres_docker_image_force_pull: "{{ matrix_postgres_docker_image_to_use.endswith(':latest') }}"
|
|
|
|
# A list of extra arguments to pass to the container
|
|
matrix_postgres_container_extra_arguments: []
|
|
|
|
# Controls whether the matrix-postgres container exposes a port (tcp/5432 in the
|
|
# container) that can be used to access the database from outside the container (e.g. with psql)
|
|
#
|
|
# psql postgresql://username:password@localhost:<port>/database_name
|
|
#
|
|
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:5432"), or empty string to not expose.
|
|
matrix_postgres_container_postgres_bind_port: ""
|
|
|
|
# A list of additional (databases and their credentials) to create.
|
|
#
|
|
# Example:
|
|
# matrix_postgres_additional_databases:
|
|
# - name: matrix_appservice_discord
|
|
# username: matrix_appservice_discord
|
|
# password: some_password
|
|
# - name: matrix_appservice_slack
|
|
# username: matrix_appservice_slack
|
|
# password: some_password
|
|
matrix_postgres_additional_databases: []
|
|
|
|
# A list of roles/users to avoid creating when importing (or upgrading) the database.
|
|
# If a dump file contains the roles and they've also been created beforehand (see `matrix_postgres_additional_databases`),
|
|
# importing would fail.
|
|
# We either need to not create them or to ignore the `CREATE ROLE` statements in the dump.
|
|
matrix_postgres_import_roles_to_ignore: [matrix_postgres_connection_username]
|
|
|
|
matrix_postgres_import_roles_ignore_regex: "^CREATE ROLE ({{ matrix_postgres_import_roles_to_ignore|join('|') }});"
|
|
|
|
# A list of databases to avoid creating when importing (or upgrading) the database.
|
|
# If a dump file contains the databases and they've also been created beforehand (see `matrix_postgres_additional_databases`),
|
|
# importing would fail.
|
|
# We either need to not create them or to ignore the `CREATE DATABASE` statements in the dump.
|
|
matrix_postgres_import_databases_to_ignore: [matrix_postgres_db_name]
|
|
|
|
matrix_postgres_import_databases_ignore_regex: "^CREATE DATABASE ({{ matrix_postgres_import_databases_to_ignore|join('|') }})\\s"
|
|
|
|
# The number of seconds to wait after starting `matrix-postgres.service`
|
|
# and before trying to run queries for creating additional databases/users against it.
|
|
#
|
|
# For most (subsequent) runs, Postgres would already be running, so no waiting will be happening at all.
|
|
matrix_postgres_additional_databases_postgres_start_wait_timeout_seconds: 15
|
|
|
|
matrix_postgres_pgloader_docker_image: "docker.io/illagrenan/pgloader:3.6.2"
|