ROR项目中连接多个数据库的方法
首先打开config目录中的database.yml文件,配置要访问的另外一个数据库的信息。
- other_db_name_connection:
- adapter: mysql
- database: other_db_name
- username: root
- password:
- encoding: utf8
- host: localhost
这个数据库可以和以前的数据库在同一台机器上,也可以在其他的机器上,在host里边可以完全配置。
然后生成一个继承ActiveRecord::Base的抽象类
- class External < ActiveRecord::Base
- self.abstract_class = true
- establish_connection :other_db_name_connection
- end
现在这个继承类重写了
ActiveRecord::Base 的数据库链接,而这个链接就是我们在配置文件里边定义的。
dupal_database,那么这个类的代码就要进行部分的改变。
如下:
- class DupalDatabase::External < ActiveRecord::Base
- self.abstract_class = true
- establish_connection :other_db_name_connection
- end
然后再新建一个model文件,生成一个新的model类。这个新的model类继承了上边的抽象类
将继承上边的model类和上边的这个抽象类放到一个包里。按照上边的,我们暂时放到dupal_database
- class DupalDatabase::Stock < DupalDatabase::External
- self.table_name ='day_info'
- end
如果利用其它系统的数据库,或者其他表的名字会变,那么最好自定义表名
最后我们来调用访问
访问的时候如果你把model放到其他的目录里边比如上边的目录,那么访问起来就是:
- stock =DupalDatabase::Stock.find(:all)
- stock= DupalDatabase::Stock.new()
现在rails当中就可以完全的访问不同的数据库了,这种方式用过可以应用到rails的分布式架构中。。
相关文章:- ruby on rails招聘 上海亚士帝信息工程有限公司 12月16日
- ruby on rails招聘 二度车网 12月16日
- ruby on rails招聘 北京搜格信息技术有限公司 12月16日
- ruby on rails招聘 北京十六方数字科技有限公司12月24日
- ruby on rails招聘 江苏北极光科技发展有限公司12月22日
Tags: rails多数据库