Rails 7.0.3 應用程式具有以下 database.yml 配置,默認塊由 rails 應用程式初始化程序生成。
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000
development:
<<: *default
primary:
database: user_development
username: deploy_root
password: password
host: "localhost"
migrations_paths: db/user_migrate
primary_replica:
database: user_development
username: deploy_readonly
password: password
host: "localhost"
replica: true
forum:
database: forum_development
username: deploy_root
password: password
host: "localhost"
migrations_paths: db/forum_migrate
forum_replica:
database: forum_development
username: deploy_readonly
password: password
host: "localhost"
replica: true
office:
database: office_development
username: deploy_root
password: password
host: "localhost"
migrations_paths: db/office_migrate
test:
<<: *default
primary:
database: user_test
username: deploy_root
primary_replica:
database: user_test
username: deploy_readonly
forum:
database: forum_test
username: deploy_root
forum_replica:
database: forum_test
username: deploy_readonly
office:
database: office_test
username: deploy_root
<<: *default
primary:
host: 'primary.domain.ws'
username: deploy_root
password: [omiss]
database: user_production
pool: 50
timeout: 5000
primary_replica:
host: 'replica.domain.ws'
username: deploy_readonly
password: [omiss]
database: user_production
pool: 50
timeout: 5000
replica: true
forum:
database: forum_production
username: deploy_root
password: [omiss]
host: 'forum.domain.ws'
migrations_paths: db/forum_migrate
forum_replica:
database: forum_production
username: deploy_readonly
password: [omiss]
host: 'forumreplica.domain.ws'
replica: true
office:
database: office_production
username: deploy_root
password: [omiss]
host: 'office.domain.ws'
migrations_paths: db/office_migrate
但是,在運行bin/rails db:create應用程式時會抱怨
no implicit conversion of nil into String
Couldn't create '' database. Please check your configuration.
語法是在其他 rails 7 應用程式中使用的,盡管不是在 partnet/replica 背景關系中,并且似乎尊重 rails guides指南。
上面的字串被解釋為 nil 有什么問題?
更新 如果開發塊更改為
development:
<<: *default
database: office_development
username: deploy_root
password: password
host: "localhost"
migrations_paths: db/office_migrate
primary:
[...]
創建默認資料庫,但不創建主資料庫和副本。因此 YAML 結構存在問題,盡管它成功 lints。
uj5u.com熱心網友回復:
<<: *default需要洗掉對共享屬性的呼叫。這將允許處理開發資料庫。
屬性
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
被添加到每個塊中。
另一個問題是測驗資料庫,副本:
primary_replica:
database: user_test
username: deploy_readonly
forum_replica:
database: forum_test
username: deploy_readonly
需要洗掉才能完成該程序。我推測有這樣一個假設,即從主副本讀取的物件與從副本讀取的物件完全相同,因此這是過度的
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/475646.html
標籤:轨道上的红宝石
