RAILS连接SQL SERVER是一个比较复杂的事情.因为不同平台的处理方法不一样.
就拿linux来说,不同发行版的处理方法也有不同.
这里记录ubuntu下rails连接sqlserver的步骤.
参考: http://wiki.rubyonrails.org/rails/pages/HowtoConnectToMicrosoftSQLServerFromRailsOnLinux
1 编辑~/.bashrc文件,添加:
export ODBCINI=/etc/odbc.ini export ODBCSYSINI=/etc export FREETDSCONF=/etc/freetds/freetds.conf
2 安装unixodbc
sudo apt-get install unixodbc unixodbc-dev tdsodbc
3 安装FreeTDS
sudo apt-get install freetds-dev sqsh
配置FreeTDS: 编辑/etc/freetds/freetds.conf,添加:
[YOUR_DB_DEFINITION_NAME] host = 192.168.1.101 (change this to the right one for you) port = 1433 tds version = 8.0 charset = gb2312 # 数据库端编码 client charset = UTF-8 # 客户端编码
如果遇到乱码问题,需要根据具体情况设置编码.
测试FreeTDS:
sqsh -S YOUR_DB_DEFINITION_NAME -U USERNAME -P PASSWORD
4 定义DB
编辑/etc/odbc.ini:
[YOUR_DB_DEFINITION_NAME] Driver = FreeTDS Description = ODBC connection via FreeTDS Trace = No Servername = YOUR_DB_DEFINITION_NAME Database = YOUR_ACTUAL_DB_NAME
编辑/etc/odbcinst.ini:
[FreeTDS] Description = TDS driver (Sybase/MS SQL) Driver = /usr/lib/odbc/libtdsodbc.so Setup = /usr/lib/odbc/libtdsS.so CPTimeout = CPReuse = FileUsage = 1
测试:
isql YOUR_DB_DEFINITION_NAME USERNAME PASSWORD
5 安装RUBY ODBC
sudo apt-get install libodbc-ruby1.8
6 安装RBI ODBC DRIVER
sudo gem install activerecord-odbc-adapter
到此安装结束.
databse.yml中这样定义:
development: adapter: odbc dsn: YOUR_DB_DEFINITION_NAME username: USERNAME password: PASSWORD
以上步骤在ubuntu8.04, ruby1.8.6, rails 2.1下测试通过.