有一个Ruby on Rails应用程序是否可行,即:
a) 部署在 Heroku 上,并且
b) 使用远程 SQL Server 数据库?
我认为我需要在 Heroku 上安装 unixODBC,但我找不到这样做的方法。这可能吗?或者,有没有其他方法(没有 ODBC?)来完成这个?
非常感谢您的任何指导或提示。
更新: 有关该主题的一些信息:
1) Heroku 默认预装了 unixODBC 和 FreeTDS,所以你已经有了它们。
2) 此外,可以通过 Heroku 控制台在反引号中运行 shell 命令,例如:
heroku console
`odbcinst`
(在 Heroku shell 中运行“odbcinst”命令并显示结果)
3)您无权访问安装软件包的切片之外的文件系统。如果您只需要驱动程序路径,Heroku 支持可以提供它(在我的例子中是 /usr/lib/odbc/libtdsodbc.so)。
4) 您不能在 Heroku shell 中运行 sudo 命令。
目前,要连接到 MS SQL Server,您至少需要附加“freetds.conf”文件。即使使用 tinyTDS(在 tinyTDS gitgub 问题页面中有一个 open ticket#2)。“wiki.rubyonrails.org SLASH database-support SLASH ms-sql”中的 DSN-less 连接说明对我不起作用,我想这个连接也需要一些额外的配置。
没有 sudo 就无法修改“freetds.conf”。因此,我得出结论,目前没有办法让 MS SQL 和 Heroku 一起工作。
我已经设法与 EngineYard 和 activerecord-sqlserver-adapter 建立了这种连接。
我遵循了这些说明: https ://github.com/rails-sqlserver/activerecord-sqlserver-adapter/wiki/Platform-Installation---Ubuntu (只有一些文件路径差异,例如'odbc.ini'位于' /etc/unicodbc',而不是 '/etc' - 这很容易解决)。
我使用 EY Unix 软件包功能安装了“unixODBC”和“freetds”软件包,并通过 SSH 手动进行了所有配置。Sudo 在 EY 中可用(无需密码)。还有 Chef Recepes 功能可以自动化这些配置(看起来很简单,我明天要试试)。
希望这会有所帮助。