# PostgreSQL. Versions 9.5 and up are supported. # # Install the pg driver: # gem install pg # On macOS with Homebrew: # gem install pg – –with-pg-config=/opt/homebrew/bin/pg_config # On Windows: # gem install pg # Choose the win32 build. # Install PostgreSQL and put its /bin directory on your path. # # Configure Using Gemfile # gem “pg” # default: &default

adapter: postgresql
encoding: unicode
# For details on connection pooling, see Rails configuration guide
# https://guides.rubyonrails.org/configuring.html#database-pooling
max_connections: <%%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

<% if devcontainer? -%>

<%% if ENV["DB_HOST"] %>
host: <%%= ENV["DB_HOST"] %>
username: postgres
password: postgres
<%% end %>

<% end %>

development:

<<: *default
database: <%= app_name %>_development

# The specified database role being used to connect to PostgreSQL.
# To create additional roles in PostgreSQL see `$ createuser --help`.
# When left blank, PostgreSQL will use the default role. This is
# the same name as the operating system user running Rails.
#username: <%= app_name %>

# The password associated with the PostgreSQL role (username).
#password:

# Connect on a TCP socket. Omitted by default since the client uses a
# domain socket that doesn't need configuration. Windows does not have
# domain sockets, so uncomment these lines.
#host: localhost

# The TCP port the server listens on. Defaults to 5432.
# If your server runs on a different port number, change accordingly.
#port: 5432

# Schema search path. The server defaults to $user,public
#schema_search_path: myapp,sharedapp,public

# Minimum log levels, in increasing order:
#   debug5, debug4, debug3, debug2, debug1,
#   log, notice, warning, error, fatal, and panic
# Defaults to warning.
#min_messages: notice

# Warning: The database defined as “test” will be erased and # re-generated from your development database when you run “rake”. # Do not set this db to the same as development or production. test:

<<: *default
database: <%= app_name %>_test

# As with config/credentials.yml, you never want to store sensitive information, # like your database password, in your source code. If your source code is # ever seen by anyone, they now have access to your database. # # Instead, provide the password or a full connection URL as an environment # variable when you boot the app. For example: # # DATABASE_URL=“postgres://myuser:mypass@localhost/somedatabase” # # If the connection URL is provided in the special DATABASE_URL environment # variable, Rails will automatically merge its configuration values on top of # the values provided in this file. Alternatively, you can specify a connection # URL environment variable explicitly: # # production: # url: <%%= ENV %> # <%- unless options.skip_solid? -%> # Connection URLs for non-primary databases can also be configured using # environment variables. The variable name is formed by concatenating the # connection name with ‘_DATABASE_URL`. For example: # # CACHE_DATABASE_URL=“postgres://cacheuser:cachepass@localhost/cachedatabase” # <%- end -%> # Read guides.rubyonrails.org/configuring.html#configuring-a-database # for a full overview on how database connection configuration can be specified. # <%- if options.skip_solid? -%> production:

<<: *default
database: <%= app_name %>_production
username: <%= app_name %>
password: <%%= ENV["<%= app_name.upcase %>_DATABASE_PASSWORD"] %>

<%- else -%> production:

primary: &primary_production
  <<: *default
  database: <%= app_name %>_production
  username: <%= app_name %>
  password: <%%= ENV["<%= app_name.upcase %>_DATABASE_PASSWORD"] %>
cache:
  <<: *primary_production
  database: <%= app_name %>_production_cache
  migrations_paths: db/cache_migrate
queue:
  <<: *primary_production
  database: <%= app_name %>_production_queue
  migrations_paths: db/queue_migrate
<%- unless options.skip_action_cable? -%>
cable:
  <<: *primary_production
  database: <%= app_name %>_production_cable
  migrations_paths: db/cable_migrate
<%- end -%>

<%- end -%>