在与标准“生产”或“开发”不同的数据库上使用 Rails Migration

2024-04-11

我有一个正在运行的 Rails 项目,它在 config/database.yml 中定义了标准生产:、:开发和:测试数据库连接

另外,我有一个 quiz_development: 和 quiz_product: 定义指向不同的主机/数据库/用户/密码

我现在的目标是定义一个使用“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)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在与标准“生产”或“开发”不同的数据库上使用 Rails Migration 的相关文章

随机推荐