Я использую Rails 5.2.0 на Ruby 2.3.4 для подключения к базам данных MySQL (через mysql2
gem) и DB2 (через ibm_db
gem).
Когда я пытаюсь подключиться кDB2, я получаю:
Error loading the 'ibm_db' Active Record adapter. Missing a gem it depends on? cannot load such file -- arel/visitors/bind_visitor
и трассировка вызывает
ibm_db (4.0.0) lib/active_record/connection_adapters/ibm_db_adapter.rb:13:in
'
, которая состоит из
require 'arel/visitors/bind_visitor'
Конечно, похоже, что он пытается загрузить зависимость, но не может.bundle install
не возвращает ошибок.
Я не уверен, как проверить, правильно ли установлен модуль Bind_Visitors, или что еще может вызвать эту ошибку.Пожалуйста, дайте мне знать, если вам нужно увидеть какие-либо журналы или Gemfile.
Для запроса, метод подключения.
config / database.yml:
default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
socket: /var/run/mysqld/mysqld.sock
prms: &prms
adapter: ibm_db
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
socket: /var/run/mysqld/mysqld.sock
username: <%= ENV["PRMS_USERNAME"] %>
password: <%= ENV["PRMS_PASSWORD"] %>
schema: V10INTRA
host: 10.11.210.61
port: 446
authentication: server
development:
<<: *default
database: portal
host: albireo
username: <%= ENV["DEV_DB_USERNAME"] %>
password: <%= ENV["DEV_DB_PASSWORD"] %>
app/models/prms_record.rb:
class PrmsRecord < ActiveRecord::Base
self.abstract_class = true
# establish_connection :"prms_#{Rails.env}"
establish_connection :prms
end
app / models / location.rb
class Location < PrmsRecord
end
Я тестирую всего лишь вызовом find_by_sql
в контроллере для выбора первого10 рядов таблицы.Как заметка, я знаю, что здесь есть проблемы с эффективностью пула подключений, я просто пытаюсь заставить работать самый простой метод, прежде чем тратить время на его выполнение.