恢复数据库的一部分

Restore part of a database

我们有一个遗留系统,其管理界面不稳定,其中一位用户设法清除了一些记录。我们有几天前的备份,但我们不想只删除数据库并从备份中恢复 - 我只需要那里的几种类型的对象(很多行,但只有少数关联对象)。

如何只恢复部分记录?我认为以下方法可行:

我可以更改 ActiveRecord 对象中的某些固有内容以使其使用相同的 ID 和所有内容保存到 production 数据库,即使它最初来自 backup 数据库,所以它们与之前几乎完全相同(除了 created_at,当然没关系)

这可能不是最好的方法,但我真的不能确定最好的方法是什么。数据库相当庞大,所以我无法真正获得原始 sql 或类似的东西。

感谢任何帮助!

方法一

我认为最简单的方法是为您想要恢复的几个 table 拍摄快照,然后将该备份恢复到您的目标数据库。

方法二

如果您无法进行备份,只需尝试将现有备份恢复到新数据库,然后使用 ActiveRecord::Base.establish_connection 连接到它,然后 select 记录那些几个 tables 并将其还原到您的目标数据库。

方法 3

如果您正在使用 mysql 或任何其他 RDBMS,则只需将备份恢复到新数据库,然后写入 SQL 以将 table 行从该数据库传输到你的目标数据库。