在环境之间复制单个记录

时间:2012-07-17 08:27:46

标签: ruby-on-rails ruby-on-rails-3

我有一个处于不同开发阶段(实时,测试,开发)的应用程序

当测试人员报告测试数据库的问题时,他们将指定一个仅在测试数据库上的用户ID,这使得在开发中重现问题非常困难(在某些情况下)

我希望能够提取与表中特定id绑定的所有内容(包括通过外键链接的其他表中的对象),并能够将该数据导入开发数据库。

怎么办?

  • 我可以深层复制所有链接的关系吗?
  • 我可以导出该对象然后导入它
  • 我可以从该迁移脚本访问两个数据库吗?

1 个答案:

答案 0 :(得分:0)

你想要达到的目标并不是一件容易的事。

如果您要提取有关用户的所有信息,您必须创建一个脚本来访问他的所有信息和相关信息,或直接从数据库表中提取信息。

如果您更喜欢第一种选择,则必须仔细查看关系并使用ActiveRecord提取所有关系。

使用“attributes”方法可能对你有用,如果你有一个User模型和一个@user实例,你可以这样做:

user_attributes = @user.attributes

并在哈希中提取他的属性,稍后您可以执行以下操作:

User.create(user_attributes)

创建具有相同属性的用户,但您将遇到protected_attributes或关系问题。

也许您尝试遵循的策略不是解决问题的最佳方法。

您无法访问测试环境,例如使用ssh?这样您就可以检查数据库并按原样查看问题。