【问题标题】:Multiple DBs from a single Rails app: what's the state-of-the-art?来自单个 Rails 应用程序的多个 DB:什么是最先进的?
【发布时间】:2012-04-23 19:44:47
【问题描述】:

经过一些研究,Rails 似乎对多个数据库连接有明确、优雅的支持:http://www.rubynaut.net/articles/2008/05/31/how-to-access-multiple-database-in-rails.html

但是,rails 似乎不支持在迁移中支持这一点:http://www.jamesinman.co.uk/2011/10/serving-one-rails-application-with-multiple-databases/

因此,有几个项目来填补空白。例如:http://kovyrin.github.com/db-charmer/

我在这里遗漏了什么吗?奇怪的是,连接到多个数据库既简单又优雅,但迁移它们需要黑客攻击。

【问题讨论】:

  • 嗯,我从来没有想过。我有带有本地数据库的 Rails 应用程序,它们运行迁移,以及与遗留数据库或由不同应用程序管理的数据库的其他连接,我永远不需要运行迁移。在两个或多个数据库之间运行迁移就像拥有多个本地数据库一样,我不明白为什么您需要它而不是一个包含所有本地数据的数据库。但这只是我。我从不认为这是一个问题。
  • 为了对数据进行分段以实现可扩展性。
  • 当然,我只是在解释我的经验,这可能会阐明为什么很难找到提供的解决方案。 :)

标签: ruby-on-rails ruby activerecord rails-migrations multiple-databases


【解决方案1】:

啊,其实很简单:-D

在 Rails 3 中:

class CreateAPIRequestLogs < ActiveRecord::Migration
  def connection
    SpecialClassWithAlternativeDB.connection
  end

  def change
    # ... your migration code ...
  end
end

但是,回滚似乎无法正常工作。

此外,架构版本仍保留在主数据库中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 2014-02-09
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多