Heroku postgres:如何通过回滚来分叉 pg 数据库以恢复丢失的数据

Heroku postgres: How to fork pg database with rollback to recover lost data

我不小心从我们的生产数据库 (Heroku postgres) 中删除了 3 行。我按照 Heroku 的本指南创建了一个回滚叉:https://devcenter.heroku.com/articles/heroku-postgres-rollback

我的生产数据库称为 HEROKU_POSTGRESQL_IVORY 并且在计划 Standard-0 中。

我尝试了他们建议的多种命令组合:

$ heroku addons:create heroku-postgresql:standard-0 --rollback 
HEROKU_POSTGRESQL_IVORY --TO '2018-11-22 13:13+00' --APP my_app

$ heroku addons:create heroku-postgresql:standard-0 --rollback 
HEROKU_POSTGRESQL_IVORY --TO '2018-11-22 13:13+00:00' --APP my_app

$ heroku addons:create heroku-postgresql:standard-0 --rollback 
HEROKU_POSTGRESQL_IVORY --BY '0 days 1 hours 0 minutes' --APP my_app

这三个都创建了一个没有回滚的数据库。当我 运行 heroku pg:info -a my_app 时,我可以看到新创建的数据库,但是它给出的回滚版本从来不是从期望的时间开始的,并且我删除的行不存在:

Plan:                  Standard 0
Status:                Available
Data Size:             52.4 MB
Tables:                34
PG Version:            10.6
Connections:           8/120
Connection Pooling:    Available
Credentials:           2
Fork/Follow:           Available
Rollback:              earliest from 2018-11-22 14:17 UTC
Created:               2018-11-22 14:10 UTC
Region:                eu
Data Encryption:       In Use
Continuous Protection: On
Forked From:           HEROKU_POSTGRESQL_IVORY
Maintenance:           not required
Maintenance window:    Wednesdays 21:00 to Thursdays 01:00 UTC
Add-on:                postgresql-deep-1111

发帖后很快发现:

确保使用小写的标志:

  • --to 相对于 --TO
  • --by 相对于 --BY