目標是從ENV散列配置所有 3 個默認環境(“開發”、“測驗”、“生產”)。我如何告訴 Rails 建立以下映射,下面main定義在config/database.yml哪里?
'development' -> main
'test' -> main
'production' -> main
資料庫配置合并為main如下config/database.yml:
defaults: &defaults
adapter: postgresql
encoding: utf8
port: 5432
timeout: 10000
main:
<<: *defaults
url: <%= ENV['MAIN_DATABASE_URL'] %>
pool: <%= ENV['MAIN_DATABASE_POOL'] %>
在:development&:test中,從檔案gem 'dotenv-rails', groups: [:development, :test]加載運行時環境。.env在:productionENV 中通過其他方式設定。
唉,當我這樣做時rails s,這個錯誤:
.../activerecord-5.2.0/lib/active_record/connection_adapters/connection_specification.rb:260:in `resolve_symbol_connection':
'development' database is not configured. Available: ["defaults", "main"] (ActiveRecord::AdapterNotSpecified)
并且關于資料庫配置的檔案沒有答案。
uj5u.com熱心網友回復:
如果您添加一個錨點main,例如&main:
main: &main
<<: *defaults
url: <%= ENV['MAIN_DATABASE_URL'] %>
pool: <%= ENV['MAIN_DATABASE_POOL'] %>
您可以使用它來定義您的環境:
development: *main
test: *main
production: *main
或者,就像您對defaults:
development:
<<: *main
test:
<<: *main
production:
<<: *main
后者允許您添加額外的鍵值對或覆寫現有的鍵值對。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/497845.html
標籤:轨道上的红宝石 红宝石 ruby-on-rails-5.2 红宝石-2.6
