问题描述
按照推荐使用 ODBC 连接器将雪花连接到 rails 应用程序: https://community.snowflake.com/s/article/Ruby-Connectivity-Options-for-Snowflake
而且,由于 rails odbc 连接器已经过时且不再维护,我使用了一个修补过的连接器: https://github.com/Singlespot/odbc_adapter
不幸的是,有几天,我无法再使用我的活动记录模型进行查询。我总是得到:
ODBC::Error: S1000 (6) [SNowflake][SNowflake] (6)
Assertion failure: GEOGRAPHY_type_unsupported
from /home/gg/.rvm/gems/ruby-2.7.2/bundler/gems/odbc_adapter-44dad924c0de/lib/odbc_adapter/schema_statements.rb:63:in `fetch_all'
即使运行 SNowflake.connection.exec('select 1')
雪花模型是:
class SNowflake < ActiveRecord::Base
connects_to database: { writing: :sNowflake,reading: :sNowflake }
end
和数据库连接是:
sNowflake:
adapter: odbc
conn_str: "...."
解决方法
关闭循环:问题由 Snowflake 支持处理,似乎是由 Snowflake ODBC 驱动程序中的错误引起的,当帐户中的任何表中存在 GEOGRAPHY 类型列时触发。修复正在进行中,并将在 Snowflake ODBC 驱动程序的未来版本中提供。任何感兴趣的人 - 请关注ODBC release notes。
edit @ APR30 2021:Snowflake ODBC 驱动程序的固定版本 (2.23.2) 可供下载。