ruby-on-rails - 在 Rails 控制台中的数据库之间复制

标签 ruby-on-rails database rails-console

我有三个数据库:

  • A. mynewapp_psql (Postgres)
  • B. old_products_psql (Postgres)
  • C. old_blogposts_mysql (Mysql)

每个都在 database.yml 中定义

我正在使用 A (mynewapp_psql) 作为我的新应用程序的数据库。在这个应用程序中,我希望能够从我的两个旧数据库中复制选定的 Material 。

我的尝试(根据回复更新)

old_db = ActiveRecord::Base.establish_connection(:database => 'old_blogposts_mysql'... etc)
posts = old_db.connection.execute("select * from posts'")
posts.each do |p|
  NewPost.create(:name => p.name.downcase) #NewPost should add Post in A. (mynewapp_psql)
end

它应该从我的旧数据库中取出每个产品并在新数据库中创建一个新的等价物。

我真的更喜欢通过控制台来完成,我不能直接复制数据库,因为我需要过滤和更改数据。

最佳答案

所以你的情况是失去联系之一。如何建立一个新的连接到您当前的数据库,以便您的代码变成这样

old_db = ActiveRecord::Base.establish_connection(:database => 'old_blogposts_mysql'... etc)
posts = old_db.connection.execute("select * from posts'")
new_db = ActiveRecord::Base.establish_connection(:database => 'mynewapp_psql'... etc)
posts.each do |p|
  NewPost.create(:name => p.name.downcase) #NewPost should add Post in A. (mynewapp_psql)
end

关于ruby-on-rails - 在 Rails 控制台中的数据库之间复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23396688/

相关文章:

ruby-on-rails - 在 rspec 测试之前启动 rails?

ruby-on-rails - 资源丰富的路由,但使用 GET 而不是 POST 的 #create 操作

mysql - 如何构建即时搜索引擎? (具有排名/相关性)

sql - 如何使用 SQL 更新将列表或映射值放入嵌入映射中?

ruby-on-rails-3 - 如何从 rails 控制台运行初始化程序?

ruby-on-rails - Rails 唯一列有重复项

ruby-on-rails - 在页面上查找匹配 HREF 模式的链接

sql - 如何在不影响原始数据库的情况下将现有备份从现有数据库还原到新数据库?

ruby-on-rails - 如何使用 Rails 控制台获取有效的真实性 token ?

ruby-on-rails - 奇怪的 Rails 控制台行为