在运行时连接到ruby中的两个不同的数据库

我在开发环境和生产环境中托管了一个数据库。 我正在编写一个API,它基于请求中的参数将写入开发或生产数据库中的表。 我把两个条目放在database.yml文件中:

 development: adapter: mysql2 database: db1 username: root password: timeout: 5000 host: abcd pool: 5 port: 1234 production: adapter: mysql2 database: db1 username: root password: timeout: 5000 host: abce pool: 5 port: 1234 

这是我的积极记录:

 class table1 < ActiveRecord::Base self.table_name = 'table1' end 

如何根据请求参数写入不同的环境?

您可以为同一个表使用两个模型,一个连接到生产数据库,另一个连接到开发数据库。

让我们说你的连接参数在变量$production$development

您还必须调整代码以了解要使用的模型。

 class Table1 < ActiveRecord::Base establish_connection($production) self.table_name = 'table1' end class Table1test < ActiveRecord::Base establish_connection($development) self.table_name = 'table1' end 

跟这个一起去。 [ActiveRecord Firebird适配器] [1]

[1]: https : //github.com/rowland/activerecord-fb-adapter我使用它将我的本地rails应用程序与其他生产服务器数据库连接,不要忘记添加可帮助您通过其访问数据库的模型rails app。 goodluck,希望它有所帮助。

对于我的应用程序,我使用此gem

https://github.com/thiagopradi/octopus

有很好的文档和示例。

如果使用establish_connection ,则会出现连接问题。