【发布时间】:2015-09-26 17:11:27
【问题描述】:
我正在为我的 rails 应用程序使用两个不同的数据库。通过将下面的行添加到 user.rb 中,我将我的用户模型连接到第二个数据库
establish_connection "db2_#{Rails.env}"
我正在使用 multi-database-migrations gem https://github.com/azitabh/multi-database-migrations,当我运行时它工作正常
rake db:multi:migrate DATABASE=db2
目前我的 database.yml 看起来像这样:
development:
adapter: mysql2
encoding: utf8
database: database_name
pool: 5
username: root
password:
db2_development:
adapter: mysql2
encoding: utf8
database: database_name
pool: 5
username: root
password:
但我希望它看起来像这样
db1_development:
adapter: mysql2
encoding: utf8
database: database_name
pool: 5
username: root
password:
db2_development:
adapter: mysql2
encoding: utf8
database: database_name
pool: 5
username: root
password:
我的问题是我应该告诉 rails 去哪里寻找“db1_#{Rails.env}”?
我正在考虑在我的 application.rb 中添加类似的内容:
ENV['ENV'] ||= 'development'
db_conf = YAML::load(File.read("config/database.yml"))
DB1_CONF = db_conf["db1_#{Rails.env}"][ENV['ENV']]
DB2_CONF = db_conf["db2_#{Rails.env}"][ENV['ENV']]
但我不确定应该在哪里调用常量 DB1_CONF。
有什么建议吗?
【问题讨论】:
标签: mysql ruby-on-rails ruby yaml database-migration