推送到Heroku的一个不好的方面是,我必须在运行数据库迁移之前推送代码(服务器会自动重新启动)。显然,这可能会导致一些500错误,因为用户浏览网站时使用了新代码而没有新的表/属性:Heroku提出的解决方案是使用维护模式,但我希望有一种没有副作用的方式让我的Web应用程序始终运行!有办法吗?例如使用Capistrano:
- 我准备一个新目录用于部署代码
- 我运行(反向)迁移,并且旧代码仍然可以工作得很完美
- 我将Mongrel实例切换到新目录并重新启动服务器