Мне нужно присоединить модель ActiveRecord в моем приложении Ruby on Rails к другой таблице в другой схеме, которая не имеет модели. Я искал ответ и нашел его части, но не целое решение в одном месте, отсюда и этот вопрос.
У меня есть модель корабля с миллионами строк.
У меня есть таблица (reload_cars) в другой схеме (temp_cars) в той же базе данных с несколькими миллионами записей. Это специальная таблица, которая будет использоваться для одного специального обновления данных и никогда не будет использоваться снова. С этой таблицей не связано никакой модели.
Сначала я был ленив и выбрал все записи reload_cars в массив (reload_vins) в одном запросе, а затем во втором запросе сделал что-то вроде:
`Vehicle.where(vin_status: :invalid).where('vin in (?)', reload_vins)`.
Это немного упрощает фактический запрос, но демонстрирует необходимое объединение. В других запросах мне нужны полные наборы внутренних и внешних объединений между этими таблицами. Мне также нужно поместить различные критерии выбора в таблицу моделей и / или таблицу немоделей на разных этапах.
Этот тупой подход хорошо работал при разработке, но не масштабировался до производственной базы данных. Я думал, что это займет несколько минут, чего достаточно для одноразовой операции. Но время истекло, особенно при циклическом просмотре наборов записей. Небольшие настройки не помогли.
Итак, мне нужно сделать законное соединение.