Heroku迁移数据库更改

时间:2011-11-24 01:06:09

标签: ruby-on-rails ruby ruby-on-rails-3 heroku ruby-on-rails-3.1

我对我的应用进行了更改,包括添加模型和向预先存在的模型添加列。我正在使用rails 3.1,我知道我必须在部署之前预先编译我的资产。运行git push heroku masterheroku rake db:migrate之后,我应该发现任何错误吗?

我正在尝试将停机时间降至最低,因为用户在部署期间会与网站进行交互。

更新

一切似乎都很好。 Push& Rake DB做到了。

3 个答案:

答案 0 :(得分:3)

您可能想要研究的一件事是在您进行更新时将应用程序置于维护模式。您可以通过弹出维护消息来最大限度地减少混淆,而不是让用户遇到不可预测的结果。您也可以自定义它。

您可以在这里阅读:http://devcenter.heroku.com/articles/maintenance-mode

答案 1 :(得分:0)

首先,我会在开发环境(仍在Heroku上)上测试它。这是确保你不会出错的唯一真正方法。

其次,Heroku试图为您预编译您的资产,因此通常您不必做任何事情。也就是说,它仅适用于“基本情况”,您所做的任何更改通常会破坏它,并且您的应用程序通常会在生产中寻找“all.css”。因此,您可能必须尝试它,然后根据具体情况对日志中的错误进行故障排除。

第三,在用户上线时进行更改会增加风险。如果你真的在乎,我会在下班时间这样做。更改ruby版本我特别避免了高峰时间部署。

最后一点是,如果您需要进行迁移以使新代码生效,您将会对实时用户造成中断。我不知道任何推动和推动的方式在单个命令中迁移。在推送和迁移之间总会有一个小的时间增量,如果您正在为实时流量提供服务,那么将使用旧模式的新代码,这可能会导致错误。

希望这有帮助。

答案 2 :(得分:0)

最佳做法是在部署

时将网站置于维护模式
  

heroku维护:在

完成后,可以

  

heroku维护:关闭