Ruby on rails rails应用程序有两个数据库-一个用于读取数据,另一个用于写入数据

Ruby on rails rails应用程序有两个数据库-一个用于读取数据,另一个用于写入数据,ruby-on-rails,ruby,activerecord,connection,Ruby On Rails,Ruby,Activerecord,Connection,我需要使用postgresql db将一些旧式数据从sqlite3数据库导入rails应用程序。因此,我创建了一个模型“businesss”,其中包含遗留SQLITE3DB的所有列类型。我更改了database.yml文件等。。。。。。 在模型business.rb中,我添加了这一行: class Business < ActiveRecord::Base establish_connection "citylistings_development" end 我看到了一个关于这个主题的

我需要使用postgresql db将一些旧式数据从sqlite3数据库导入rails应用程序。因此,我创建了一个模型“businesss”,其中包含遗留SQLITE3DB的所有列类型。我更改了database.yml文件等。。。。。。 在模型business.rb中,我添加了这一行:

class Business < ActiveRecord::Base

establish_connection "citylistings_development"
end

我看到了一个关于这个主题的演示,您需要查看secondbase gem。引用其文档“SecondBase向您的应用程序添加了第二个数据库。虽然Rails允许您建立与任意多个外部数据库的连接,但Rails只能通过迁移和测试任务管理单个数据库。”

它是为您需要它的确切原因而创建的。他们有一个需要导入的遗留数据库

干杯,
Sean

这将是Rails 6的原生版本

class AnimalsBase < ApplicationRecord
  connects_to database: { writing: :animals, reading: :animals_replica }
end
class animalbase

以下是。

可能会很方便,至少很高兴知道:发布您的数据库。yml,业务表是在pg db中创建的,这很奇怪????我不认为你可以像你想要的那样拆分一个模型,你只需要创建一个循环,从legacy读取并写入pg db。添加了database.yml-请参阅上面编辑的部分谢谢
#===============================================================================
development:
 adapter: postgresql
 encoding: unicode
 database: XXX_development
 pool: 5
 username: XXX
 password: XXXX
#===============================================================================
citylistings_development:
 adapter: sqlite3
 database: db/citylistings.sqlite3
 pool: 5
 timeout: 5000
https://github.com/karledurante/secondbase
class AnimalsBase < ApplicationRecord
  connects_to database: { writing: :animals, reading: :animals_replica }
end