Использование внешней базы TeamStorm
TeamStorm использует:
- postgresql - для миграций и инициализации tenant сервиса;
- pgbouncer - для доступа микросервисов к базе;
Мы рекомендуем использовать внешнюю базу в связке с внешним pgbouncer.
Чтобы использовать внешнюю базу укажите в env:
POSTGRES_USER="postgres"
POSTGRES_PASSWORD="password"
POSTGRES_PORT="5432"
POSTGRES_HOST="database_service"
PGBOUNCER_PORT="6432"
PGBOUNCER_HOST="pgbouncer"
PGBouncer из комплекта поставки использует для инициализации покдлючения к базе auth_query:
Для этого должны быть права доступа к этой таблице у учетной записи:
По умолчанию учетная запись используется scram-sha-256, ее можно переопределить дополнительно, передав:
Вы можете переопределить полностью все настройки в pgbouncer.ini и userlist.txt,
для этого в каталоге с проектом необходимо создать 2 файла ./configs/pgbouncer.ini и ./configs/userlist.txt.
pgbouncer.ini - настройки pgbouncer, например:
#pgbouncer.ini
[databases]
* = host=database_service port=5432
[pgbouncer]
listen_addr = 0.0.0.0
listen_port = 6432
auth_file = /etc/pgbouncer/userlist.txt
auth_type = scram-sha-256
auth_query = SELECT usename, passwd FROM pg_shadow WHERE usename=$1
auth_user = postgres
pool_mode = transaction
max_client_conn = 10000
default_pool_size = 100
min_pool_size = 0
ignore_startup_parameters = extra_float_digits
so_reuseport = 1
# Log settings
admin_users = postgres
# Connection sanity checks, timeouts
server_reset_query = DISCARD ALL
server_lifetime = 3600
server_idle_timeout = 60
userlist.txt - список пользователей, у которых есть доступ к базе, например
"postgres" "SCRAM-SHA-256$4096:XnvQEUPvdGrMPYNYXOf0fg==$kgehLmaFN0VOaKXOtOuATAxq6PUcBdaOsyWlcc/+lCg=:bFyTEFDUX4zXfmdUZQyBixbbL85jjWWYFMrCZK31QNc="
после в docker compose добавить их для pgbouncer