在我的rails应用程序中,我想连接到两个数据库服务器。一个是ms-sql(microsoft sql server)
,另一个是mysql
数据库。我怎样才能并行连接两台服务器。我知道有些人在开发和生产sqlite3
数据库中使用postgres
。我不想这样。我想要的是它是开发还是生产我想要并行连接到两个数据库。我怎么能够?以什么方式我需要写database.yml file
。是否有任何宝石可以连接到ms-sql server
数据库?
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
答案 0 :(得分:1)
我已经完成了something similar,虽然在has_many :through
之类的问题上存在一个主要问题:
#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
这允许您继承“其他连接”db:
#app/models/user.rb
class User < Parallel
...
end
虽然这很有效(尽管有一些与其他数据库的schema
有关的问题),但在尝试使用has_many :through
之类的内容时会遇到一个主要问题。
我没有任何细节,但您必须小心将db与此功能之间的关联混合在一起。