问题描述
运行 heroku releases
时,我看到以下信息:
版本 | 描述 | LDAP | 时间 |
---|---|---|---|
v364 | 通过 heroku-postgresql 更新 HEROKU_POSTGREsql_Amber | heroku-postgresql@addons.heroku.com | 2021/01/13 17:09:43 -0800 |
v363 | 启用allow-multiple-sni-endpoints功能 | api-maintenance@heroku.com | 2020/08/06 11:20:42 -0700 |
v362 | 通过 heroku-postgresql 更新 HEROKU_POSTGREsql_teal | heroku-postgresql@addons.heroku.com | 2019/10/16 19:54:44 -0700 |
最新的 Heroku 自动版本破坏了我的旧应用程序,因为它将 Postgresql 版本从 9.6
更改为 12.5
,该应用程序当前不支持该应用程序。
我想知道我是否可以回滚在 2021/01/13 (v364) 上完成的这个自动更改?
另一个问题是,如果我打算使用 Heroku 标准回滚命令 heroku rollback v363
,所有存储的 b/w v363 和 v364 版本 (2019/10/16 - 2020/08/06) 的数据会在回滚后保存吗?
最后一个问题,v364 发布(2021/01/13 - 现在)后创建的数据在回滚到发布 v363 后会保持不变吗?
解决方法
通过长路径解决了这个问题:
-
我设置了虚拟机,VirtualBox 对我来说很好用。我在 VM 上设置了不同版本的 Postgres,包括 9 和 12
-
我从 Heroku 导出了数据库,并在本地 VM 上从 12 转换为 9。首先,我使用 Heroku Web UI 加载了数据库备份。我将 DB 文件导入到本地 Postgres 12,然后将 db 导出到 SQL 文本文件中。然后我将数据从 SQL 文本形式重新导入到 Postgres 9
-
我的应用程序需要支持遗留堆栈,Ruby 版本很旧,Heroku 不再支持。此外,旧版 Ruby 版本的应用程序也在 Ubuntu 14 上进行了测试,Heroku 停止支持该操作系统。所以我在使用 Ubuntu 14 等的 AWS 上设置了 Docker 容器,并将应用程序部署到容器和 Postgres DB 9,在 AWS RDS 中设置
Here 您可以找到如何在 AWS 上创建运行 Ruby 应用程序的 Docker 容器的好文章。我按照那里提到的步骤操作,这对我有用。