在OS X系统中配置Ruby on Rails使其可以访问Sql Server数据库

经过大半天的折腾,终于可以让RoR在OS X系统里访问Sql Server数据库了。这里记录一下操作的过程,免得以后忘了。

第一步,安装FreeTDS

从FreeTDS的官网上下载最新的稳定版的压缩包,然后,遵照这里的说明进行手工编译(好怀念微软的Setup.exe和*.msi啊),其中只需要前7步:

1. Download the latest stable release of freetds.
2. Extract freetds tgz file within Downloads
3. Open terminal and cd to Downloads/freetds-0.** folder
4. run “./configure”
5. run “cp /usr/bin/glibtool libtool” <----Important!
6. run "sudo make"
7. run "sudo make install"

这样,我们的FreeTDS就算是装好了。

第二步, 安装Tiny_TDS

就在命令行里执行: gem install tiny_tds

不要问我gem从哪里来的,google一下gem就会找到很多信息。在OS X里,gem是内置的。呵呵。

注意,如果没有安装FreeTDS的话,tiny_tds也肯定会安装失败,因为它依赖FreeTDS

第三步, 安装 activerecord_sqlserver_adapter

同样,只需要在命令行里执行: gem install activerecord_sqlserver_adapter

第四步, 修改RoR项目根目录下的Gemfile文件,增加一下2句:

gem 'tiny_tds'

gem 'activerecord_sqlserver_adapter'

第五步,运行bundle install

在命令行里运行 bundle install,运行完毕之后会输出很多Using语句,看看tiny_tds和activerecord_sqlserver_adapter是否包含在里面,应该都包含在里面才正确。

第六步,修改database.yml

打来RoR项目根目录下、config子目录下的database.yml文件,根据需要修改配置,比如:

development:

adapter: sqlserver

mode: dblib

dataserver: 10.4.30.77\Sql2005   # Name from freetds.conf, host or instance 'localhost\SQLEXPRESS'

host: 10.4.30.77          # Used if dataserver is blank.

port: 1433              # Used if host present. Default is 1433.

database: ALO_DB

username: db_user

password: xxxx

timeout: 5000

azure: false # for windows azure

最后,大功告成

可以创建model了: rails generate model MyShipper ShipperID:int ShipperName:string

posted on 2012-03-13 18:30  零度的火  阅读(413)  评论(0编辑  收藏  举报

导航