我对我的应用程序进行了更改,包括添加模型和向现有模型添加列。我正在使用Rails 3.1,并且知道我必须在部署之前预编译资产。一旦我运行git push heroku master
和heroku rake db:migrate
,我是否应该期望任何错误?
我试图将停机时间保持最少,因为用户将在部署期间与站点进行交互。
更新
一切似乎都很好。通过推送和运行Rake DB命令完成了部署。
我对我的应用程序进行了更改,包括添加模型和向现有模型添加列。我正在使用Rails 3.1,并且知道我必须在部署之前预编译资产。一旦我运行git push heroku master
和heroku rake db:migrate
,我是否应该期望任何错误?
我试图将停机时间保持最少,因为用户将在部署期间与站点进行交互。
更新
一切似乎都很好。通过推送和运行Rake DB命令完成了部署。
首先,我会在开发环境上测试这个(仍然在Heroku上)。这是确保不会出现错误的唯一真正方法。
其次,Heroku尝试为您预编译资产,因此通常您不需要做任何事情。也就是说,它只适用于“基本情况”,您所做的任何更改通常都会破坏它,并且通常您的应用程序将在生产中寻找“all.css”。因此,您可能需要尝试一下,然后根据情况从日志中排除错误。
第三,当用户在线时进行更改总是增加风险。如果您真的关心,我会在非工作时间进行此操作。我特别避免在高峰期部署Ruby版本更改。
最后一点是,如果您需要对新代码进行迁移,您将中断实时用户。我不知道有任何一种方法可以在单个命令中推送和迁移。在推送和迁移之间始终会有一个小的时间差,在此期间,如果您正在提供实时流量,则会有具有旧模式的新代码,这可能会导致错误。
希望这可以帮助到您。
在部署时,将网站置于维护模式是最佳实践。
heroku maintenance:on
完成后,可以执行以下操作:
heroku maintenance:off