ruby on rails同时连接两个数据库

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kavin_luo/article/details/52641045

使用 ruby on rails 做项目开发时,有时候需要同时连接两个数据库,没有这样做过的开发人员可能有点困难,其实方法很简单,在这里简单介绍一下,希望能给大家带来帮助。

本次使用的数据库分别为 Mysql DB 和 Oracle DB (两个数据库可以为同一种数据库,方法类似),第一个数据库 Mysql DB 配置文件与单个数据库的项目中的配置文件中相同。下面开始添加第二个数据库 Oracle DB :

1、添加 Oracle DB 配置文件到database.yml文件中。(注:ruby on rails 连接 Oracle DB 时,不同于 Mysql DB ,不可以直接连接, 需要安装一个名为 ruby-oci8 的 gem 包,Mac OS 系统下的安装过程详见:http://blog.csdn.net/kavin_luo/article/details/52610152)

oracle_development: #名字可自定义,但是不能重复。
  adapter: oracle_enhanced
  username: root
  database: TEST
  password: root
  host: localhost
  port: 1521 # Oracle DB 的端口号,如果为 Mysql 则不用写。
  encoding: utf8

2、让项目连接第二个数据库 Oracle DB 。

添加文件 lib/external_data.rb

class Test::ExternalData < ActiveRecord::Base #Test为方法名,可自定义
  self.abstract_class = true
  establish_connection :oracle_development # oracle_development 为database.yml文件中添加的第二个 DB 配置的名字
end

3、为第二个 DB 添加 model 。(注:所有的model名字不能重复,包括第一个数据库 Mysql DB 所有的 model )

例如: Oracle DB 中有一张表为 Users .
添加文件 app/models/user.rb

class User < Test::ExternalData #被继承的类名为external_data.rb文件中自定义的类名
end

这样就可以了,下面来测试一下。

4、测试第二个数据库 Oracle DB 是否可以使用。

在项目根目录下执行:

bundle
rails c 

进入到rails console

1.9.3-p551 :001 > User.first

就能查找到 User 表中的第一条数据了。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页