ruby on rails同时连接两个数据库
来源:互联网 发布:淘宝客服务费结算方式 编辑:程序博客网 时间:2024/06/03 23:48
使用 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 是否可以使用。
在项目根目录下执行:
bundlerails c
进入到rails console
1.9.3-p551 :001 > User.first
就能查找到 User 表中的第一条数据了。
0 0
- ruby on rails同时连接两个数据库
- Ruby on Rails 连接 Oracle 数据库实践
- Ruby on Rails 连接 Oracle 数据库实践
- Ruby on Rails连接Oracle数据库实践
- Ruby on rails 连接mysql数据库实践
- Ruby on Rails学习笔记(二 Ruby连接mysql数据库)
- Ruby on Rails数据库操作
- Ruby on rails连接Mysql (on ubuntu)
- Ruby on Rails 学习:连接CouchDB
- Ruby on Rails,使用关系数据库简介
- ruby on rails 的数据库查询方法
- Ruby On Rails 学习:使用Redis数据库
- ruby on rails操作mysql数据库
- ruby on rails 的数据库查询方法
- Ruby on rails开发从头来(四十三)- ActiveRecord基础(连接数据库)
- How to connect DB2 with ruby on rails 如何连接DB2数据库
- Ruby on rails开发从头来(四十三)- ActiveRecord基础(连接数据库)
- 安装ruby on rails碰到的两个问题
- HUD 1004
- 一句话总结我的校招
- JQuery中的事件和动画
- 2-2.HDFS的shell操作(Hadoop系列day02)
- 【翻译】ASP.NET Web API入门
- ruby on rails同时连接两个数据库
- 数组转成集合【java】
- HDU 1702 FIFO FILO
- C++(1) 指针 new 和delete
- 【Bash百宝箱】shell内建命令之bind、enable、ulimit
- tomcat启动报错 ASM ClassReader failed to parse class file
- JAVA招聘交流群 226763945
- Nginx的upstream目前支持的几种分配(调度,分派)方式
- select下拉option内容太,需要截取显示,demo