Соединение с несколькими БД с использованием ActiveRecord
В общем, с Ruby у меня пошло как-то получше, чем ранее с python’ом и фреймворком Yii2.
Смотрю тут всякие видеоуроки, читаю книги, уже немного фигачу всякие мелочи с использованием Sinatra и ActiveRecord.
Вот понадобилось тут из одного приложения создавать подключения к нескольким базам данных. Искал всякие варианты — ничего толком не нашел. Там вроде можно как-то конфиги указывать в database.yml, но у меня не получилось. Зато получилось вот так:
для начал нам потребуется собственно сам activerecord
в файле app.rb — основной файл приложения Sinatra, — прописываем следующее:
require 'rubygems' require 'sinatra' require 'sinatra/activerecord' ActiveRecord::Base.configurations["mysql1"] = { :adapter => "mysql2", :host => "localhost", :username => "username", :password => "userpassword", :database => "databasename", :encoding => "utf8" } ActiveRecord::Base.configurations["mysql2"] = { :adapter => "mysql2", :host => "localhost", :username => "username", :password => "userpassword", :database => "oher_databasename", :encoding => "utf8" }
А далее в коде при создании класса с нашей моделью прописываем вот так:
class Table1 < ActiveRecord::Base establish_connection "mysql1" end class Table2 < ActiveRecord::Base establish_connection "mysql2" end
Вот и всё. После этого у меня приложение заработало нормально.
Немного позже напишу ещё о том, как подключиться к базе MSSQL из синатры (если, конечно, получится).