gpt4 book ai didi

ruby - 在 Heroku 上热部署,无需停机

转载 作者:数据小太阳 更新时间:2023-10-29 06:24:34 24 4
gpt4 key购买 nike

推送到 Heroku 的一个不好的方面是我必须在运行我的数据库迁移之前推送代码(并且服务器会自动重启)。

这显然会导致用户在没有新表/属性的情况下浏览具有新代码的网站时出现大约 500 个错误:Heroku 提出的解决方案是使用维护模式,但我想要一种没有缺点的方法让我的 webapp 运行每次!

有办法吗?例如 Capistrano:

  • 我准备将代码部署到新目录
  • 我运行(向后)迁移,旧代码继续完美运行
  • 我将 mongrel 实例切换到新目录并重新启动服务器

...而且我没有停机时间!

最佳答案

您可以设置第二个 Heroku 应用程序,它指向与主要生产应用程序相同的数据库,并使用辅助应用程序在不中断生产的情况下运行数据库迁移(假设迁移不会破坏应用程序的先前版本)。

我们将 Heroku 应用称为PRODUCTIONSTAGING

你的部署顺序会变成这样:

  1. 将新代码部署到STAGING
    git push heroku 暂存
  2. STAGING 上运行数据库迁移(以更新 PROD 数据库)
    heroku run -a staging-app rake db:migrate
  3. 将新代码部署到PRODUCTION
    git push heroku 制作

暂存应用程序不会花费您任何费用,因为您不需要超过 Heroku 的免费套餐,并且设置一个 rake 部署脚本来自动为您执行此操作非常简单。

祝你好运!

关于ruby - 在 Heroku 上热部署,无需停机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2560845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com