将对象复制到Rails ActiveRecord中的新数据库

时间:2014-05-09 18:05:39

标签: ruby-on-rails activerecord multiple-databases

我希望在类上有一个方法,将对象和所有关系复制到另一个具有相同结构的数据库。我怎么能做到这一点?

1 个答案:

答案 0 :(得分:0)

你可以看一下dbcharmer,它可以动态切换连接,所以复制一条记录对我来说是件小事。

[更新]小例子:你不必弄乱ActiveRecord::Base.connection

假设您的database.yml看起来像这样:

production:
  blah:
    adapter: mysql
    username: blah
    host: blah.local
    database: blah

  foo:
    adapter: mysql
    username: foo
    host: foo.local
    database: foo 

然后你应该可以做类似的事情(免责声明:我自己只阅读文档)

original_user = User.on_foo.find(99)

User.on_blah.create(name: original_user.name, ...)

我猜你甚至可以做类似

的事情
User.on_blah do 
  original_user.save
end