在Rails 3中使用postgresql和mysql?

时间:2012-04-10 14:12:35

标签: mysql ruby-on-rails ruby

Rails在生产中使用的数据库适配器是PostgreSQL,但我需要查询另一台服务器上的MySQL数据库。我在我的Gemfile中包含了'mysql2'gem,并且捆绑安装运行正常。

在我的应用程序控制器中,我有client = Mysql2::Client.new(...),但我得到了未初始化的常量ApplicationController :: Mysql2。

为什么捆绑器不加载mysql2 gem?我尝试将require 'mysql2'放在应用程序控制器中,但是找不到文件。

注意我正在使用ruby 1.9.3p125和rails 3.2.1

2 个答案:

答案 0 :(得分:0)

在代表辅助数据库中数据的模型上调用establish_connection。 Rails应该弄明白。

Data.establish_connection adapter: 'mysql'  # ...

必须传递的哈希类似于数据库配置文件中的哈希。查看文档以获取示例。

答案 1 :(得分:0)

这是一个老问题。但是,假设有可能只是:

client = Mysql2::Client.new(...)

...来自rails应用程序,并且可以成功建立连接(首先在控制台中尝试)。然后,我将把mysql连接放到你的Rails应用程序的/ lib目录中的一个类中,然后:

require 'yourlib'

..在控制器的顶部。然后,您可以在控制器中使用您的类和方法。

您创建的lib文件以及您编写的使用lib文件的代码也可以在rails控制台中进行测试。