将Rails 3.1与多个数据库连接

在ShowNearby,我们一直在进行从PHP到RoR 3.1的大规模迁移,并且我们面临着一些您可能已经解决的一些问题。


我们拥有大量数据,因此我们决定将数据库分成几个我们可以分别处理的数据库。例如,我们的帐户,地点,日志和其他信息被分为几个数据库


我们需要获得移植,装置,模型才能很好地玩耍,到目前为止,情况一直很混乱。我们对于解决方案可接受的一些要求:


一个模型应该与其中一个数据库中的一个表相关。

rake db:drop-应该删除我们在database.yml中指定的所有数据库环境

rake db:create-应该创建我们在database.yml中指定的所有数据库环境

rake db:migrate-应该运行到各种数据库的迁移

rake db:test-应该获取固定装置并将其放入各种数据库以及测试单元/功能/等

我们正在考虑为每个数据库设置单独的Rails项目,并将它们与ActiveResource连接起来,但是我们认为这不是很有效。你们有没有处理过类似的问题?


摇曳的蔷薇
浏览 482回答 3
3回答

莫回无

连接到不同的数据库非常容易:# model in the "default" database from database.ymlclass Person < ActiveRecord::Base&nbsp; # ... your stuff hereend# model in a different databaseclass Place < ActiveRecord::Base&nbsp; establish_connection (&nbsp; &nbsp; :adapter&nbsp; => "mysql",&nbsp; &nbsp; :host&nbsp; &nbsp; &nbsp;=> "other_host",&nbsp; &nbsp; :username => "username",&nbsp; &nbsp; :password => "password",&nbsp; &nbsp; :database => "other_db"&nbsp; )end我会警惕设置多个Rails项目,因为这将为控制器的数据检索增加很多开销,这可能会使事情变慢。至于您关于迁移,固定装置,模型等的问题:我认为不会有简单的方法,因此请发布单独的问题,并尽可能具体。将数据库合并为一个不是一种选择吗?它将使您的生活更加轻松!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Ruby