在运行时连接到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
,则会出现连接问题。