Heroku上的雪花通过ODBC



Update-我通过使用Sequel和Ruby ODBC gems以及Heroku的不同构建包来实现它(https://elements.heroku.com/buildpacks/daasity/heroku-buildpack-snowflake-odbc)

必须修改AptFile行

https://sfc-repo.snowflakecomputing.com/odbc/linux/2.18.3/snowflake-odbc-2.18.3.x86_64.deb

https://sfc-repo.snowflakecomputing.com/odbc/linux/latest/snowflake-odbc-2.21.0.x86_64.deb

我正在寻找一些建议来帮助解决我在尝试通过Heroku上的ODBC将Rails 5.1应用程序连接到Snowflake数据库时遇到的问题。我尝试了各种方法,但不断遇到不同的问题。

迄今为止采取的步骤:

  • 添加了heroku社区/apt构建包
  • 使用以下软件包创建了AptFile:

unixodbc

unixodbc dev

https://raw.githubusercontent.com/carwow/heroku-buildpack-snowflake-odbc/master/snowflake-odbc.deb

  • 添加了odbc_adapter gem(https://github.com/localytics/odbc_adapter)

  • 修改了我的database.yml文件以包括:雪花连接详细信息。

  • 创建了一个新的类来镜像Snowflake中的表,添加了一行来建立到Snowflak的连接,以及一个测试连接的方法。

当我在本地运行这个程序时,一切都很完美。当我部署到Heroku并尝试运行相同的方法时,我会得到这个错误:

ODBC::错误:S1000(-1([unixODBC][DSI]在en-US区域设置中找不到错误消息SFRestRequestFailed。检查/app/.apt/usr/lib/snowlake/odbc/lib/SFMessages_en-US.xml是否存在。

当我检查Heroku上的文件结构时,我可以看到SFMessages_en_US.xml位于不同的路径中。

我尝试使用isql-v查看是否可以获得更多详细信息,但返回了一个错误:

[2800][unixODBC][DSI]在en-US区域设置中找不到错误消息DSIReqSettingNotFound。检查/app/.apt/usr/lib/snowlake/odbc/lib/ODBCMessages_en-US.xml是否存在。

我一直在努力让它发挥作用,但由于无法看到潜在的错误,我陷入了困境。

在安装SNFLK ODBC驱动程序之前,请尝试添加以下内容(从Dockerfile复制,因此需要更改以匹配Heroku(:

ENV LANGUAGE=en_US.UTF-8
ENV LANG=en_US.UTF-8
ENV LC_ALL=en_US.UTF-8
RUN apt-get install locales && locale-gen

最新更新