我有一个正在运行的 Rails 项目,它在 config/database.yml 中定义了标准生产:、:开发和:测试数据库连接
另外我有一个 quiz_development: 和 quiz_production: 定义指向不同的主机/数据库/用户/密码
我现在的目标是定义一个使用“quiz_#{RAILS_ENV
}`”作为其数据库配置的迁移。
我尝试过(但失败了):
- 在迁移文件中设置 ActiveRecord::Base.connection
- 更改 rails 中的 db:migrate 任务以在那里设置 ActiveRecord::Base.connection
问题:
如何让 rake db:migrate 使用其他数据库定义?
谢谢, 弗兰克
最佳答案
有一个更简单的答案。将此添加到您的迁移中:
def connection
ActiveRecord::Base.establish_connection("quiz_#{Rails.env}").connection
end
这是针对 Rails 3.1 的。对于 Rails 2.X 或 3.0,它是一个类函数(例如 def self.connection
)
关于ruby-on-rails - 在与标准 "production"或 "development"不同的数据库上使用 Rails 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1404620/