установка unixodbc и freetds на OSX и Rails 2.3.x

Я пытаюсь настроить unixodbc на OSX (10.7.3), но похоже, что iODBC уже в пути.

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

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


person Pedro Nascimento    schedule 29.03.2012    source источник


Ответы (3)


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

gem install ruby-odbc -- --with-odbc-lib=/usr/local/lib
person Pedro Nascimento    schedule 30.03.2012
comment
Вы можете быть более конкретным? У меня возникла эта проблема, и это не совсем пошаговое решение. Благодарность - person abc123; 19.06.2014
comment
Какая у вас ОС? Я установил unixodbc с помощью Brew, а затем связал его с помощью этого на OSX. - person Pedro Nascimento; 28.06.2014
comment
Это был мой рубин на mac os x, я опубликовал решение проблемы. - person abc123; 28.06.2014

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

Вам будет лучше обновить iODBC всеми последними исправлениями (Apple, как правило, немного отстает в этом), чем переход на UnixODBC. Вы также можете найти некоторые преимущества в Ruby + ODBC и < опубликованные нами документы href = "http://odbc-rails.rubyforge.org/" rel = "nofollow"> 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
person TallTed    schedule 05.11.2012
comment
Спасибо за совет, но, к сожалению, мне больше не нужно использовать odbc. Тем не менее, я надеюсь, что люди, у которых есть проблемы с unixodbc, смогут использовать ваш пост для решения своих проблем. :) - person Pedro Nascimento; 10.11.2012

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

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

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

person Dobler    schedule 05.12.2014