【问题标题】:Rails 4 - rake db:migrate on a live website with HerokuRails 4 - rake db:使用 Heroku 在实时网站上迁移
【发布时间】:2016-03-08 07:21:37
【问题描述】:

简单的问题,但我似乎找不到答案。

在全天都有活跃用户的实时生产站点上,在不进入维护模式的情况下迁移数据库的最佳方法是什么?

在我的情况下,我在我的数据库中添加了几列,并希望向上迁移更改。通常,我会简单地运行heroku maintenance:on,然后迁移我的更改,然后关闭维护——显然这将避免推送和迁移之间的任何异常/错误。既然我一直有活跃的用户,我觉得必须有一种方法可以无缝地做到这一点——这不是把任何人踢出去,也不会向他们扔维护屏幕。

不胜感激。如果在某处谈论此事,请链接任何文档 - 严重找不到任何东西。

【问题讨论】:

标签: ruby-on-rails ruby ruby-on-rails-4 heroku


【解决方案1】:

零停机时间的数据库迁移策略取决于多种因素:

  • 是否要添加、删除或重命名列?您需要更改列类型还是要添加索引?
  • 表有多大,迁移需要多长时间?
  • 该表是否被大量使用,或者是否可以仅禁用此模型。
  • 您使用什么数据库引擎?一些数据库即使是很小的更改也会锁定整个表。
  • 数据库用户有什么级别的访问权限?某些工具(例如 Soundcloud's lhm 需要比普通 Rails 应用更多的权限。

您将在此readme 中找到一些如何添加或删除列的示例。

【讨论】:

    【解决方案2】:

    查看Heroku pre-boot。它可能正是您正在寻找的。​​p>

    【讨论】:

      猜你喜欢
      • 2013-02-01
      • 2011-04-21
      • 2012-09-08
      • 2011-08-05
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      相关资源
      最近更新 更多