Мне необходимо получить/обновить/удалить данные во внешней базе, никак не относящийся к базе самого приложения. Необходимо к ней обращаться из кода. Подскажите, где это все оформить, инициализация подключения, CRUD операции. Предполагаю, что в модели. Может есть какой-то пример, как лучше всего это написать?
Есть несколько возможных решений.
На уровне ActiveRecordМожно выдумать ключ, под которым будут храниться реквизиты удалённой базы данных, например, external
, и внести их в database.yml
:
external:
adapter: mysql
host: example.com
...
...а в модели указать ActiveRecord обращаться именно к той базе:
class Model < ActiveRecord::Base
establish_connection :external
end
...а можно указать реквизиты прямо в аргументах establish_connection
хэшмапом, но хранить их лучше в файле конфигурации на ваш выбор. database.yml
, если вы его не коммитите, неплохой выбор. И вообще, вот документация к establish_connection
.
MySQL имеет движок хранения FEDERATED
, который делегирует хранение данных другому MySQL-серверу. Сначала этот движок необходимо включить на уровне сервера БД, а затем создать таблицу-отражение прямо в базе приложения.
Rails даже не нужно будет знать о том, что данные на самом деле где-то далеко.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как задать максимальный и минимальный размеры группы, чтобы получить записи, где count < 5 и count > 2?
При выполнении вставки данных в таблицу я получаю ошибку:
Warning 1: mysql_query() expects parameter 1 to be string