rails 连接oracle

Rails连接Oracle教程
本文详细介绍如何在Windows和Linux环境下配置Ruby on Rails应用以连接Oracle数据库。包括安装Oracle客户端、配置Ruby OCI8驱动、安装必要的适配器文件及设置database.yml等步骤。
部署运行你感兴趣的模型镜像

原以为rails连接oralce就像mysql那么简单,没想到还是费了一番周折,记录下来备忘
Windows
1)安装oralce 客户端
2下载 ruby-oci8-1.0.1-mswin32.rb
然后dos下rubyruby-oci8-1.0.1-mswin32.rb
D:\>ruby ruby-oci8-1.0.1-mswin32.rb
Copy OCI8.rb to D:/dev/ruby/lib/ruby/site_ruby/1.8/DBD/OCI8
Copy oci8.rb to D:/dev/ruby/lib/ruby/site_ruby/1.8
Copy oci8lib.so to D:/dev/ruby/lib/ruby/site_ruby/1.8/i386-msvcrt
OK?
Enter Yes/No: yes
Copying OCI8.rb to D:/dev/ruby/lib/ruby/site_ruby/1.8/DBD/OCI8 ... done
Copying oci8.rb to D:/dev/ruby/lib/ruby/site_ruby/1.8 ... done
Copying oci8lib.so to D:/dev/ruby/lib/ruby/site_ruby/1.8/i386-msvcrt ... done
OK
3)拷贝apdater文件
The oracle adapter does not exist on Rails 2 by default so:
  1. Check out the oracle adapter
    svn co
    http://svn.rubyonrails.org/rails/adapters/oracle/lib/active_record/connection_adapters/
  2. And move oracle_adapter.rb to your ActiveRecord adapters path
    [your ruby path]/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters
  3. Try again, it should work
4)
database.yml
development:
adapter: oracle
database: [your database as it appears on TNSNAMES.ora]
username: [your username]
password: [your password]
Linux
1)下载和安装oralce 10g 客户端
下载 oracle-instantclient-basic-10.2.0.3-1.i386.rpm
oracle-instantclient-devel-11.1.0.1-1.i386.rpm
rpm -ivh oracle-instantclient-basic-10.2.0.3-1.i386.rpm
rpm -ivh oracle-instantclient-devel-11.1.0.1-1.i386.rpm
设置环境变量
LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.3/client/lib
export LD_LIBRARY_PATH
最好放在/etc/profile,这个不仅仅是安装时用到,程序运行时也需要用到
3)安装客户端api
cd /usr/local/src
tar xzvf ruby-oci8-1.0.1.tar.gz
cd ruby-oci8-1.0.1
make && make install
4) 拷贝apdater文件
The oracle adapter does not exist on Rails 2 by default so:
4.2) And move oracle_adapter.rb to your ActiveRecord adapters path
[your ruby path]/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters
5)
database.yml
development:
adapter: oracle
database: [your database as it appears on TNSNAMES.ora]或者[//主机名:端口/服务名]
username: [your username]
password: [your password]

注意上面的database有两种写法,如果用第一种,必须系统存在tnsnames.ora,
在一台没有安装oracle server的linux机器上是不存在这个文件到,但客户端会默认
寻找/etc/tnsnames.ora,如果没有这个文件会报错:
env.c:257:in oci8lib.so: ORA-12154: TNS:could not resolve the connect identifier specified (OCIError)
如果本来就在oralce server上,那么这么写是可以的
第二种写法通用性很强,完全无需tnsnames.ora

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值