我们有一个遗留系统,有一个摇摇欲坠的管理界面,其中一个用户设法删除了一些记录。我们有几天前的备份,但我们不想只删除DB并从备份中恢复-我只需要几种类型的对象从那里(很多行,但只有少数相关联的对象)。
如何只恢复一些记录?我认为以下几点是可行的:
ActiveRecord::Base.establish_connectionwidgets = Widget.all)establish_connection)widgets.save) --但是它不能工作?在ActiveRecord对象中是否存在一些我可以更改的内容,使其使用相同的id和所有东西保存到production数据库中,即使它最初来自backup数据库,所以它们与以前的基本相同(当然,除了created_at之外,这是可以的)。
这可能不是最好的办法,但我不能真正确定什么是最好的方式。数据库相当庞大,所以我无法真正获得原始sql或类似的内容。
任何帮助都很感激!
发布于 2016-07-07 06:03:25
方法1
我认为最简单的方法是对想要恢复的几个表进行快照,然后将备份还原到目标数据库。
方法2
如果不能进行备份,只需尝试将现有备份还原到新数据库,然后使用ActiveRecord::Base.establish_connection连接到它,然后选择这几个表的记录并将其还原到目标数据库。
方法3
如果使用mysql或任何其他RDBMS,只需将备份还原到新数据库,然后编写SQL将表行从该数据库传输到目标数据库。
https://stackoverflow.com/questions/38237991
复制相似问题