如何在rails中回滚数据库事务

时间:2013-11-02 00:19:35

标签: ruby-on-rails heroku rollback rails-console

我是铁杆新手,刚刚与强大的rails控制台有过第一次糟糕的体验。我在ALL中覆盖了一个列而不是一个记录,经过几个小时的谷歌搜索后,我没有找到回滚这个愚蠢的事务的常用方法(最后手动修复了76行!)。

我正在研究heroku上的实时环境,只是想修复一个条目。 如果你做了愚蠢的事情,必须有一种方法来回滚数据库中的事务(postgres) - 而不是使用pgbackup。

如果你可以与我分享一些最好的实践或给我一个良好的阅读开始,那将是很棒的。 谢谢!

1 个答案:

答案 0 :(得分:0)

我假设你已经提交了交易,但万一你还没有,你可以简单地做:

ROLLBACK TRANSACTION;

由于我假设您已经尝试过,不幸的答案是您唯一的选择是从最后一个已知状态恢复数据库。

有一些选项和插件可能有助于避免将来出现此问题,但它们都会带来性能成本。有关一些信息Database Content VersioningPostgres reverting back,请参阅其他Stack Overflow问题。