推送到 Heroku 的一个不好的方面是我必须在运行我的数据库迁移之前推送代码(并且服务器会自动重新启动)。
这显然会导致用户在没有新表/属性的情况下使用新代码浏览网站时出现大约 500 个错误:Heroku 提出的解决方案是使用维护模式,但我想要一种没有缺点的方法,让我的 webapp 每次都运行!
有办法吗?以 Capistrano 为例:
- 我准备要在新目录中部署的代码
- 我运行(向后)迁移,旧代码继续完美运行
- 我将 mongrel 实例切换到新目录并重新启动服务器
...而且我没有停机时间!