`
lucifer
  • 浏览: 14076 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

终于搞定了Rails和Oracle的连接

阅读更多
前些日子在家里用mysql连接rails,没出过什么问题。但是在公司试验的时候,问题来了:如何用rails连接oracle阿。rails对于mysql有着天生的支持,但是对于其他数据库似乎就不是那么友好了。
下载了驱动,按照安装说明进行了安装,似乎一切ok.信心满满的试验能否连接上,用ruby script/generate scaffold XXX XXX命令试验了一下,结果:“ORA-12514: TNS:監聽器無法解析連線描述區指定的 SERVICE_NAME”这样的异常出现了,google了一下,好像是database.yml中数据库配置不对。按照相关说明将host项改为<host>:<port>/sid后,再次运行scaffold,又出错了,这次是“ORA-06401: NETCMN: 驅動程式的指定無效”!
ft哦,这样可怎么办,在网上查,也没有太好的答案,有个家伙居然说按照oracle中tnsnames.ora的写法写就行了……
方法看起来都试完了,最后一次,试试按照sid_<host>的写法来配置host项,居然成功了,成功连接的界面显得那么亲切,嘿嘿。
最后将成功连接的yml配置写出来:

development:
  adapter: oci
  host: sid_host
  username: <username>
  password: <password>


这里只是开发数据库的配置,其他两个类似就可以了。还有,database项在oci连接中是不需要的,所以就不用了。
分享到:
评论
2 楼 together 2006-11-04  
oracle没有database之说,只有schema,默认就是当前用户的schema。所以这样配置是可以的。
1 楼 robbin 2006-10-13  
跑rails那台机器是需要按照Oracle客户端的,然后配置好连接数据库服务器的tnsname,database.yml里面填写这个tnsname就可以了。

另外还要注意,跑rails那台机器要配置好NLS_LANG,否则中文会乱码

相关推荐

Global site tag (gtag.js) - Google Analytics