Heroku "We're sorry, but something went wrong" Postgres迁移后



我最近完成了Heroku请求的从"共享数据库"到Postgres的数据库迁移。我仔细地遵循了Heroku的指示,一切都很顺利,直到最后一步:删除旧的共享数据库。在那一刻,我的应用程序出现了"出了问题"的消息,从那以后它一直处于关闭状态(现在已经运行了两周)。

请注意,在我切换到新数据库的步骤之后,该应用程序仍在工作,根据"heroku配置",它正在使用新数据库。它不应该关心老的消失。日志只显示了500个错误。

我向Heroku提交了一份紧急支持请求,但他们没有帮助。他们只是说我的数据仍然存在,但"你的应用程序没有记录,所以不清楚为什么会发生这种情况,但这似乎不是因为迁移。"那是一周前的事了,所以看起来他们不会再做任何事情了。

我同意这个问题不应该是由于迁移造成的,但考虑到我除了迁移之外没有对应用程序进行任何更改,而且它正是在我删除旧数据库时死亡的,我不知道它还能是什么。

我的应用程序在这一点上可能很旧(Rails 3.0.3),所以我现在唯一的想法是将所有内容更新到最新版本并重新部署。该应用程序用于记录我们当地童子军的功绩徽章和等级提升,所以我真的需要让它重新运行。如有任何建议,我们将不胜感激。

我的第一反应是数据库:提取heroku托管的数据库。(复印一份)。

然后尝试在本地启动您的应用程序。

Heroku已经解决了这个问题。我的假设是正确的:我的应用程序太旧了,迁移过程实际上并没有更新它以使用新的数据库。他们表示,他们现在将对其他旧应用程序进行修复。

如果应用程序在您删除共享数据库的那一刻开始出现故障,则意味着您的应用程序仍然连接到此数据库,并且从未连接到新数据库。听起来你好像没有运行heroku pg:promote HEROKU_POSTGRESQL_<color of new database> --app <your-app>。你能试试吗?

编辑:

根据您评论中提供的进一步信息,这可能是白杨和竹垛中的一个潜在问题(只影响少数客户)。现在要尝试的是一个新的部署。试着做一个微不足道的更改——也许在你的项目README中增加一行——然后再次部署应用程序。这将强制重新编译slug,它将使用正确的DB写出一个新的database.yml。

更好的方法是通过

迁移到雪松堆栈

相关内容

最新更新