config/database.yml
postgresql: &postgresql
adapter: postgresql
encoding: utf8
database: identity_idp_<%= Rails.env %>
port: 5432
username: <%= ENV['DOCKER_DB_USER'] %>
defaults: &defaults
host: <%= ENV['DOCKER_DB_HOST'] || 'localhost' %>
pool: 5
<<: *postgresql
# timeout settings
timeout: <%= IdentityConfig.store.database_timeout %>
reconnect: true
connect_timeout: 2
keepalives_idle: 10
keepalives_interval: 10
keepalives_count: 2
checkout_timeout: 5
reaping_frequency: 10
variables:
statement_timeout: <%= IdentityConfig.store.database_statement_timeout %>
development:
primary:
<<: *defaults
adapter: postgresql
migrations_paths: db/primary_migrate
read_replica:
<<: *defaults
adapter: postgresql
replica: true
worker_jobs:
<<: *defaults
database: identity_idp_worker_jobs_<%= Rails.env %>
migrations_paths: db/worker_jobs_migrate
test:
primary: &test
<<: *defaults
adapter: postgresql
pool: 10
checkout_timeout: 10
database: <%= ENV['POSTGRES_DB'] || "identity_idp_test#{ENV['TEST_ENV_NUMBER']}" %>
user: <%= ENV['POSTGRES_USER'] %>
password: <%= ENV['POSTGRES_PASSWORD'] %>
migrations_paths: db/primary_migrate
read_replica:
<<: *test
adapter: postgresql
replica: true
worker_jobs:
<<: *test
database: <%= "identity_idp_worker_jobs_test#{ENV['TEST_ENV_NUMBER']}" %>
migrations_paths: db/worker_jobs_migrate
<%
worker_pool = if Identity::Hostdata.instance_role == 'worker'
GoodJobConnectionPoolSize.calculate_worker_pool_size(
queues: IdentityConfig.store.good_job_queues,
cron_enabled: true,
max_threads: IdentityConfig.store.good_job_max_threads,
)
else
IdentityConfig.store.database_pool_idp
end
%>
<%
primary_pool = if Identity::Hostdata.instance_role == 'worker'
GoodJobConnectionPoolSize.calculate_primary_pool_size(
queues: IdentityConfig.store.good_job_queues,
max_threads: IdentityConfig.store.good_job_max_threads,
)
else
IdentityConfig.store.database_pool_idp
end
%>
production:
primary:
<<: *defaults
adapter: postgresql
database: <%= IdentityConfig.store.database_name %>
username: <%= IdentityConfig.store.database_username %>
host: <%= IdentityConfig.store.database_socket.present? ? IdentityConfig.store.database_socket : IdentityConfig.store.database_host %>
password: <%= IdentityConfig.store.database_password %>
pool: <%= primary_pool %>
advisory_locks: <%= IdentityConfig.store.database_advisory_locks_enabled %>
prepared_statements: <%= IdentityConfig.store.database_prepared_statements_enabled %>
sslmode: <%= IdentityConfig.store.database_sslmode %>
sslrootcert: '/usr/local/share/aws/rds-combined-ca-bundle.pem'
migrations_paths: db/primary_migrate
read_replica:
<<: *defaults
adapter: postgresql
database: <%= IdentityConfig.store.database_name %>
username: <%= IdentityConfig.store.database_readonly_username %>
host: <%= IdentityConfig.store.database_read_replica_host %>
password: <%= IdentityConfig.store.database_readonly_password %>
pool: <%= primary_pool %>
sslmode: <%= IdentityConfig.store.database_sslmode %>
sslrootcert: '/usr/local/share/aws/rds-combined-ca-bundle.pem'
replica: true
worker_jobs:
<<: *defaults
database: <%= IdentityConfig.store.database_worker_jobs_name %>
username: <%= IdentityConfig.store.database_worker_jobs_username %>
host: <%= IdentityConfig.store.database_worker_jobs_host %>
password: <%= IdentityConfig.store.database_worker_jobs_password %>
pool: <%= worker_pool %>
sslmode: <%= IdentityConfig.store.database_worker_jobs_sslmode %>
sslrootcert: '/usr/local/share/aws/rds-combined-ca-bundle.pem'
migrations_paths: db/worker_jobs_migrate