Мы используем гем activerecord-sqlserver-adapter с sqlserver 2008, и все отлично работает. Мы только что попытались развернуть наше приложение Rails 3 на новой базе данных sqlserver 2014, и я получаю сообщение об ошибке:
Currently, only 2005, 2008, 2010, 2011, and 2012 are supported. We got back Microsoft SQL Server 2014 - 12.0.2000.8 (X64)
Беглый взгляд на github показывает, что недавно было сделано небольшое обновление для sqlserver_adapter.rd для решения этой проблемы. Я попытался обновить гем, и это превратилось в ад зависимостей, и в конечном итоге выглядело так, как будто мне придется перейти на рельсы 4 (что я не особенно хочу делать прямо сейчас), чтобы получить это исправление.
Поэтому я решил сделать свою первую попытку патча для обезьян и создал .rd в моей папке инициализаторов, которая включает изменения для добавления поддержки sqlserver 2014:
module ConnectionAdapters
class SqlServerAdapter < AbstractAdapter
SUPPORTED_VERSIONS = [2005,2008,2010,2011,2012,2014]
# === SQLServer Specific (DB Reflection) ======================== #
def sqlserver_2014?
@database_year == 2014
end
end
end
Мое намерение состояло в том, чтобы просто переопределить несколько строк кода в sqlserver_adapter.rd, изменив исправление на github. Однако, когда я пытаюсь развернуть, теперь я получаю ошибку UnitializedConstant со ссылкой на AbstractAdapter.
Как заставить этот патч работать? Или это лучший способ выполнить эту задачу?