Я не уверен, что вы имели в виду, говоря "добавить базы данных в приложение". Но вы можете использовать 2 разные (с разными схемами) базы данных в вашем приложении. Например:
конфиг / database.yml
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: project_dev
pool: 5
username: project
password:
test:
adapter: mysql2
encoding: utf8
reconnect: false
database: project_test
pool: 5
username: project
password:
sqlite:
development:
adapter: sqlite3
database: db/development.project.db
pool: 5
timeout: 5000
test:
adapter: sqlite3
database: db/test.project.db
pool: 5
timeout: 5000
Модели:
Абстрактная модель для всех моделей sqlite;
использует соединение ниндзя драгоценный камень
class SqliteModel < ActiveRecord::Base
self.abstract_class = true
use_connection_ninja(:sqlite)
end
Модель Sqlite
class Book < SqliteModel
set_table_name :Books
set_primary_key :BookID
belongs_to :volume, :foreign_key => :VolumeID
has_many :chapters, :foreign_key => :BookID
end
Mysql модель
class Highlight < ActiveRecord::Base
# ...
end
Вы даже можете использовать ассоциации между таблицами в разных базах данных.
Но если вы спрашивали об использовании 2 баз данных с одинаковой схемой (т. Е. Просто разные данные), то мой ответ - нет, это невозможно (хотя я могу ошибаться). Я думаю, что это вопрос репликации, синхронизации, резервного копирования или чего-то подобного - уровень БД, а не приложения.
Конечно, вы можете иметь 2 одинаковые таблицы в обеих базах данных, 2 модели - по одной на базу данных, а затем просто копировать записи из одной в другую. Но Rails не сделает этого автоматически.