繁体   English   中英

将一些对象从一个数据库迁移到另一个数据库

[英]Migrating some objects from one database to another

如何从一个数据库(开发,sqlite)转储一个用户的所有关联(评论,帖子等)以将其插入另一个(生产,mysql)。

我应该将它转储到yaml或sql或其他东西?

好。

God Save the YAML

我已经在开发中使用YAML转储到文件中并在我的生产中加载它。 由于它是auto_increament,因此存在已经改变的内容。

发展

user     = User.find X
posts    = user.posts
comments = user.comments
...
File.open("user.yml", "w")    { |f| f << YAML::dump(user) }
File.open("comments.yml", "w"){ |f| f << YAML::dump(comments) }
File.open("posts.yml", "w")   { |f| f << YAML::dump(posts) }
...

生产

user     = YAML::load_file("user.yml")
posts    = YAML::load_file("posts.yml")
comments = YAML::load_file("comments.yml")
new_user = user.clone.save # we should clone our object, because it isn't exist
posts.each do |p|
  post = p.clone
  post.user = new_user
  post.save
end
...

您可以使用此gem: https//github.com/ludicast/yaml_db

YamlDb是一种与数据库无关的转储和恢复数据格式。 它补充了db / schema.rb中的数据库无关模式格式。 数据保存到db / data.yml中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM