Tôi đang sử dụng đường ray 2.3.5 và mysql.Chuyển đổi kết nối trên ActiveRecord :: Lược đồ
Tôi có một mô hình TableA và một mô hình TableB khác. TableA là hoàn toàn tốt .. nhưng tôi cần phải trao đổi các kết nối cho TableB. Tôi đang kết nối với một máy chủ khác ở nơi khác vì vậy tôi phải kiểm tra xem bảng đó có tồn tại hay không. Nếu không, tôi sẽ tạo một bảng mới.
TableB.establish_connection(new_database_params)
unless TableB.table_exists?
ActiveRecord::Base.establish_connection(new_database_params)
ActiveRecord::Schema.define do
create_table :table_bs do |t|
t.column :text, :string
end
end
ActiveRecord::Base.establish_connection("#{RAILS_ENV}")
end
Tôi nhận thấy rằng TableB.establish_connection (new_database_params) kết nối tôi với máy chủ mới. Điều đó hoàn toàn ổn.
Khi cố gắng tạo một bảng mới, tôi vẫn phải gọi cho ActiveRecord :: Base để hoán đổi kết nối. Có cách nào để trao đổi kết nối trên ActiveRecord :: Schema? (tương tự như Model.establish_connection?)
Bạn có tìm thấy câu trả lời cho câu trả lời này không? Tôi đang cố gắng để đạt được chính xác điều tương tự. –