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

发布于 2024-11-02 00:53:42 字数 105 浏览 1 评论 0原文

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

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

How can I dump one user with all his associations (comments, posts etc) from one database (development, sqlite) to insert it another (production, mysql).

Should I dump it into yaml or to sql or something else?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

二货你真萌 2024-11-09 00:53:42

好的。

上帝保佑 YAML

我已经使用 YAML 从开发中转储到文件中,并将其加载到我的生产中。有 id 的 hack,由于它是 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
...

Ok.

God Save the YAML

I've used YAML dumping into file from development and loading this in my production. There was hack with id, that have changed, due it is auto_increament.

development

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) }
...

production

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
...
一直在等你来 2024-11-09 00:53:42

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

YamlDb 是一个独立于数据库的
用于转储和恢复数据的格式。
它补充了
独立于数据库的模式格式
在 db/schema.rb 中找到。数据是
保存到 db/data.yml 中。

You can use this gem: https://github.com/ludicast/yaml_db

YamlDb is a database-independent
format for dumping and restoring data.
It complements the the
database-independent schema format
found in db/schema.rb. The data is
saved into db/data.yml.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文