首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在rails应用程序中并行连接到两个数据库服务器?

如何在rails应用程序中并行连接到两个数据库服务器?
EN

Stack Overflow用户
提问于 2015-12-31 16:13:56
回答 1查看 176关注 0票数 2

在我的rails应用程序中,我想连接到两个数据库服务器。一个是ms-sql(microsoft sql server)数据库,另一个是mysql数据库。如何并行连接到两台服务器?我知道有些人在开发和生产postgres数据库中使用sqlite3。我不想以这种方式。我想要的是要么是开发,要么是生产,我想要连接到两个数据库并行。我怎么能做到呢?我需要用什么方式来编写database.yml file。有没有连接ms-sql server数据库的gem?

代码语言:javascript
复制
default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: mysql-user-name
  password: mysql-password
  socket: /var/run/mysqld/mysqld.sock

  adapter: ms-sql like gem? 
  encoding: utf8
  pool: 5
  username: ms-sql-user-name
  password: ms-sql-password
  socket: /var/run/mysqld/mysqld.sock



  development:
  <<: *default
  database: template_development
EN

回答 1

Stack Overflow用户

发布于 2015-12-31 17:34:06

我做过something similar,尽管当涉及到像has_many :through这样的东西时,有一个主要的问题

代码语言:javascript
复制
#lib/parallel.rb
class Parallel < ActiveRecord::Base
   establish_connection "other_#{RAILS_ENV}"
end

#config/database.yml
development:
  adapter: mysql
  database: development
  username: root
  password:
  host: localhost

other_development:
  adapter: mysql
  database: otherdb_development
  username: root
  password:
  host: localhost

这允许您从"other connection“数据库继承:

代码语言:javascript
复制
#app/models/user.rb
class User < Parallel
   ...
end

尽管这种方法工作得很好(尽管存在一些与其他数据库的schema相关的问题),但在尝试使用像has_many :through这样的工具时,您会遇到一个主要问题。

我没有任何细节,但在将db与此功能之间的关联混为一谈时必须小心。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34543301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档