actionrecord 连接多个数据库

来源:互联网 发布:网络教育大专学费多少 编辑:程序博客网 时间:2024/05/22 02:11

有两种方法

第一种: 每个model各自连接

    # 建立一个数据库链接 example:    ActiveRecord::Base.establish_connection(      adapter:  "mysql2",      host:     "localhost",      username: "myuser",      password: "mypass",      database: "somedatabase"    )  module DatabaseConnection      def self.included(base)        base.establish_connection(database_config)      end  end  class Company < ActiveRecord    include DatabaseConnection  end

第二种: 创建一个连接类,需要的可以继承这个类

  class DatabaseConnection < ActiveRecord    self.abstract_class = true    establish_connection(database_config)       end  class Company < DatabaseConnection        end

tips: self.abstract_class = true

加上这个DatabaseConnection类就变成抽象类,不能实例化, 如果不加上这一句,就会用上rails中的单表继承STI(Single-table inheritance), 即:在database_connections表中的type字段为Company

第二种方法的优势:可以共享链接池,减少数据库连接,降低系统资源的消耗

关于连接池的一些知识

0 0
原创粉丝点击