# 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 -%>