Ruby on rails rails应用程序有两个数据库-一个用于读取数据,另一个用于写入数据
我需要使用postgresql db将一些旧式数据从sqlite3数据库导入rails应用程序。因此,我创建了一个模型“businesss”,其中包含遗留SQLITE3DB的所有列类型。我更改了database.yml文件等。。。。。。 在模型business.rb中,我添加了这一行: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 我看到了一个关于这个主题的
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