首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >恢复数据库的一部分

问恢复数据库的一部分
EN

Stack Overflow用户
提问于 2016-07-07 05:19:38
回答 1查看 202关注 0票数 0

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

如何只恢复一些记录?我认为以下几点是可行的:

  • 连接到备份数据库的ActiveRecord::Base.establish_connection
  • 抓取我想要恢复的记录(例如widgets = Widget.all)
  • 更改到生产数据库的连接(同样使用establish_connection)
  • 保存小部件(widgets.save) --但是它不能工作?

在ActiveRecord对象中是否存在一些我可以更改的内容,使其使用相同的id和所有东西保存到production数据库中,即使它最初来自backup数据库,所以它们与以前的基本相同(当然,除了created_at之外,这是可以的)。

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

任何帮助都很感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-07 06:03:25

方法1

我认为最简单的方法是对想要恢复的几个表进行快照,然后将备份还原到目标数据库。

方法2

如果不能进行备份,只需尝试将现有备份还原到新数据库,然后使用ActiveRecord::Base.establish_connection连接到它,然后选择这几个表的记录并将其还原到目标数据库。

方法3

如果使用mysql或任何其他RDBMS,只需将备份还原到新数据库,然后编写SQL将表行从该数据库传输到目标数据库。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38237991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档