【发布时间】:2014-10-07 17:44:13
【问题描述】:
我们在 sqlserver 2008 中使用了 activerecord-sqlserver-adapter gem,一切正常。我们刚刚尝试针对新的 sqlserver 2014 db 部署我们的 Rails 3 应用程序,我收到一条错误消息:
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 进行了小更新以解决此问题。我尝试更新 gem,它变成了一些依赖地狱,最终看起来好像我必须升级到 rails 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。
如何使这个补丁起作用?还是有更好的方法来完成这项任务?
【问题讨论】:
标签: sql-server ruby-on-rails-3 gem monkeypatching