运行时连接到两个不同的ruby数据库
我有一个数据库托管在开发环境和生产环境中。我正在写一个基于请求中的参数的api将在环境或生产数据库中写入表中。运行时连接到两个不同的ruby数据库
发展:
适配器:mysql2
数据库:DB1
用户名:root
密码:
超时:5000
主持人:ABCD
我已经database.yaml文件放在这两个项目在 pool:5
port:1234生产: 适配器:mysql2 数据库:DB1 用户名:root
密码:
超时:5000
主持人:ABCE
池:5
端口:1234
这是我的活动记录:
class table1 < ActiveRecord::Base
self.table_name = 'table1'
end
如何根据请求参数写入不同的环境?
您可以对同一个表使用两个模型,一个连接到生产数据库,另一个连接到开发数据库。
假设您的连接参数在变量$production
和$developent
中。
您还需要修改代码以知道使用哪个模型。
class table1 < ActiveRecord::Base
establish_connection($production)
self.table_name = 'table1'
end
class table1test < ActiveRecord::Base
establish_connection($developent)
self.table_name = 'table1'
end
谢谢,这个工程。 – NooB8374
去这个吧。 [ActiveRecord Firebird Adapter] [1]
[1]:https://github.com/rowland/activerecord-fb-adapter我用它来连接我的本地Rails应用程序与其他生产服务器数据库,不要忘记添加模型,以帮助您通过Rails应用程序访问数据库。好运,希望它有帮助。
你有在每个环境中运行的应用程序吗?为什么不写你的API发布到不同的应用程序取决于所述参数? –
编号应用程序仅在一个环境中运行。我想先推向开发环境并进行测试。然后将其称为生产数据库。 – NooB8374
你没有。在导轨服务器启动时,通常会读取导轨中的配置。虽然可以有[多个数据库连接](http:// *。com/questions/6122508/connecting-rails-3-1-with-multiple-databases) - 你最可能想要的是一个临时环境(镜像生产环境),这通常是通过创建一个单独的rails应用程序并通过使用'ENV [ 'DATABASE_URL']'。 – max