Я разрабатываю приложение Rails, в котором буду использовать 2 разные базы данных. А именно, один для хранения учетных данных пользователя, а другой - для хранения данных другого типа. Я настроил свой файл database.yml для приема двух разных баз данных для каждой среды. Выглядит это так:
<% %w(development test production).each do |env| %>
data_<%= env %>:
adapter: sqlite3
database: db/data/<%= env %>.sqlite3
pool: 5
timeout: 5000
users_<%= env %>:
adapter: sqlite3
database: db/users/<%= env %>.sqlite3
pool: 5
timeout: 5000
<% end %>
Я также создал двухуровневые модели, по одной для каждого подключения к базе данных, а именно:
class UsersBase < ActiveRecord::Base
establish_connection "users_#{RAILS_ENV}"
end
и
class DataBase < ActiveRecord::Base
establish_connection "data_#{RAILS_ENV}"
end
У меня есть некоторые проблемы при создании модели, потому что он не может найти стандартную базу данных для разработки, но я решил это, запустив генерируемую модель с параметром --parent, установленным для соответствующего класса.
Однако теперь у меня возникла проблема при попытке запустить rake db: migrate. Задача rake не находит базу данных разработки по умолчанию (которая по соглашению должна называться development в database.yml). Мой вопрос в том, можно ли каким-то образом передать это в качестве параметра для задачи rake или, что еще лучше, сообщить Rails где-нибудь в сценарии конфигурации, что есть 2 базы данных или что имя базы данных разработки по умолчанию изменено?