3

我正在尝试在 OSX (10.7.3) 上设置 unixodbc,但看起来 iODBC 即将推出。

我的配置/database.yml:

development:
  adapter: sqlserver
  encoding: UTF8
  mode: odbc
  username: user
  password: passwd
  dsn: MY_DSN

ruby-obdc 已安装并在 Gemfile 中:

gem 'ruby-odbc', :require => 'odbc_utf8'

/usr/local/etc/freetds.conf:

[MY_SERVER]
host = host.bla.com
port = 1433
tds version = 8.0
client charset = UTF-8

/usr/local/etc/odbc.ini

[MY_DSN]
Driver=/usr/local/lib/libtdsodbc.so
Description=Sql Server Local
Servername=MY_SERVER
Port=1433
Database=my_database

当我运行script/console并尝试访问任何模型时:

产品 ODBC::Error: IM002 (0) [iODBC][Driver Manager]未找到数据源名称且未指定默认驱动程序。无法加载驱动程序

当我想使用 unixodbc 时,似乎正在使用 iODBC 连接到数据库。如何让我的 rails 应用程序使用 unixodbc 而不是 iODBC?

4

3 回答 3

2

通过针对 Homebrew 库编译 ruby​​-odbc 来解决。如果您使用的是 OSX,则此方法有效:

gem install ruby-odbc -- --with-odbc-lib=/usr/local/lib
于 2012-03-30T20:54:45.277 回答
1

iODBC 由我的雇主维护和支持,自 Jaguar (10.2.x) 以来已作为 Mac OS X 的一部分提供。

你最好用所有最新的补丁更新 iODBC(Apple 在这些方面往往有点落后),而不是转向 UnixODBC。您还可以在我们发布的Ruby+ODBCRuby-on-Rails文档中找到一些好处。

最后,最好将所有 ODBC 配置保存在 Mac OS X 的默认文件位置——

/Library/ODBC/odbc.ini
/Library/ODBC/odbcinst.ini
/Users/*/Library/ODBC/odbc.ini
/Users/*/Library/ODBC/odbcinst.ini

您可以从您可能想要拥有这些文件的任何其他地方创建符号链接,例如 -

ln -s ~/Library/ODBC/odbc.ini ~/.odbc.ini
于 2012-11-05T21:20:11.120 回答
1

使用自制软件。需要使用:

gem install ruby-odbc -- --with-odbc-dir=/usr/local/Cellar/unixodbc/2.3.2

我之前没有注意到这一点,但在佩德罗的回答中,他注意到了with-odbc-lib。不确定这是否适用于他的环境,但我需dir要这样做,因为我一直在检查 sql.h... 没有错误。

于 2014-12-05T01:40:12.453 回答