我一直试图在我的产品应用程序运行所在的Heroku上运行一个登台服务器。我认为该问题与配置错误的数据库有关。在Heroku仪表板中似乎可以看到一些奇怪的东西,其中显示了多个具有不同名称的Postgresql加载项实例。关于数据库的生产实现,它说它也已附加到我的登台应用程序上-似乎不正确-因此我删除了该数据库(我希望我的登台应用程序具有干净的数据库而不要附加到生产上)。
但是...现在看来我的生产数据库已消失。我有一张前往Heroku的支持票。但是会需要一些帮助-在这一点上我非常绝望!
我已经进入Heroku应用程序的“活动”菜单,并回滚到发生问题之前的某个位置-但我敢肯定,这只会恢复代码和设置。所以我仍然死了,因为数据库不存在。
更糟糕的是,我迅速检查了pg:backups,返回的列表已经很旧了。这似乎不对-我想我应该有自动备份-这样就增加了我可能已经搞砸了这件事的恐惧。
我希望数据库能够从我的登台应用程序中分离出来,但是对于我的生产应用程序来说是完整的。现在显示的只是数据库的“旧”版本。
更新:我能够升级仍附加到我的应用程序的较旧数据库的实例,因此该应用程序本身已启动并正在运行(但具有较旧的数据)。仍在等待Heroku支持以响应我的故障单,并希望能帮助我恢复此数据库。
解决方案:Heroku技术支持一夜之间做出了回应,并且能够按照希望的方式恢复/恢复我的生产数据库,因此,只有大约6个小时的用户无法访问最新数据,造成的损坏很小。因此有2个经验教训。
首先,很明显,要非常谨慎地管理生产数据库,并确保定期进行计划备份(我以为是这样做的,但是在自动进行Postgres升级后,这些备份似乎已经消失了,我做了不知道要重新安排他们)。
第二,Heroku会持续备份您的应用程序/数据,并且只要您处于他们的付费计划之一,就可以帮助您从此类灾难中恢复。但是您必须通过技术支持与他们联系并提出要求,无法通过仪表板或CLI从这些自动备份中恢复。