У меня есть новая версия веб-сайта, которая должна извлечь некоторую информацию из устаревшей версии веб-сайта. Старые и новые базы данных имеют одинаковые таблицы, поля и т. Д. На старом веб-сайте работает Rails 3. На новом веб-сайте работает Rails 5.
Я хочу вытащить некоторые записи (назовем их «Заказы») из старой базы данных в новую базу данных.
Моя первая попытка состояла в том, чтобы создать класс модели и установить соединение с помощью ActiveRecord, например:
class OldOrder < ActiveRecord::Base
establish_connection(
adapter: "mysql2",
host: "old_server",
username: "user",
password: "password",
database: "database"
)
end
, а затем вызвать записи следующим образом:
OldOrder.where(order_number: "whatever").each do |order|
# and so on
end
и т. Д.
К сожалению, всякий раз, когда я запускаю какую-либо команду в OldOrder, я получаю следующее сообщение об ошибке:
*** RuntimeError Exception: Your version of MySQL (5.0.77) is too old. Active Record supports MySQL >= 5.1.10.
Итак, я решил, что у меня есть два варианта: обновить mysql на старом сервере (что нежелательно из-за природы устаревшего сервера) или получить данные другим способом.
В поисках возможных ответов в StackOverflow я пытался использовать raw sql:
sql = "Select * from ... your sql query here"
records_array = ActiveRecord::Base.connection.execute(sql)
Но так как он использует ActiveRecord :: Base для запуска sql, это также не удалось.
Есть ли способ подключиться к этой старой базе данных в Rails без использования ActiveRecord, или я должен искать альтернативы?
Спасибо за ваше время!