Настройка unixodbc и freetds на OSX и Rails 2.3.x - PullRequest
3 голосов
/ 29 марта 2012

Я пытаюсь настроить unixodbc на OSX (10.7.3), но похоже, что 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 / местные / и т.д. / freetds.conf:

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

/ USR / местные / и т.д. / 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 :: Ошибка: IM002 (0) [iODBC] [Driver Manager] Не найдено имя источника данных и не указан драйвер по умолчанию. Не удалось загрузить драйвер

Кажется, iODBC используется для подключения к базе данных, когда я хочу использовать unixodbc. Как я могу заставить мое приложение rails использовать unixodbc вместо iODBC?

Ответы [ 3 ]

2 голосов
/ 31 марта 2012

Решено путем компиляции ruby-odbc для библиотек Homebrew. Это работает, если вы используете OSX:

gem install ruby-odbc -- --with-odbc-lib=/usr/local/lib
1 голос
/ 05 декабря 2014

Использование Homebrew. Необходимо использовать:

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

Я не заметил этого раньше, но в ответе Педро у него есть with-odbc-lib. не уверен, что это работает для его среды, но мне нужно, чтобы это было dir, потому что я продолжал получать проверку для sql.h ... без ошибок.

1 голос
/ 06 ноября 2012

iODBC, поддерживаемый и поддерживаемый моим работодателем , входит в состав Mac OS X начиная с Jaguar (10.2.x).

Вам будет лучше обновить iODBC всеми последними патчами (Apple имеет тенденцию отставать от них), чем переходить на UnixODBC. Вы также можете найти некоторые преимущества в документах Ruby + ODBC и Ruby-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
...