初始化时Rails回退数据库

时间:2014-02-06 22:39:33

标签: ruby-on-rails ruby database

我们的Rails设置包括两个数据库,我写了一个解决方案,如果Rails 已经在运行并且一个db关闭,则在两者之间动态切换。现在的问题是,如果默认环境数据库关闭,Rails无法启动,我需要这样做。

  1. 入侵Rails初始化以使其了解双数据库设置是不是一个好主意?
  2. 我在哪里可以做到这一点?我不能使用任何ActiveRecord方法在application.rb之前测试数据库,我们“需要”它,但同时,如果数据库关闭,则启动时会立即失败。
  3. 这是我的database.yml

    development:
    adapter: oracle_enhanced
    database: xxxx:1521/SID
    username: user
    password: pass
    failover: development_secondary
    pool: 30
    timeout: 45000

    development_secondary:
    adapter: oracle_enhanced
    database: xxxx:1521/SID
    username: user
    password: pass
    pool: 30
    timeout: 45000

1 个答案:

答案 0 :(得分:0)

这不是应用程序问题,我不建议在Rails中执行此操作。使用具有非缓存DNS记录的外部解决方案。保持应用程序层不知道数据库节点的状态。亚马逊,Rackspace和大多数其他云提供商都提供DNS故障转移。

您还可以考虑使用像Octopus

这样的宝石