Oracle on Rails
#如果生産環境使用Oracle,則需要以下操作
cd ~
#instance client必須
wget http://cloud.github.com/downloads/saberma/saberma.github.com/oracle-instantclient-basic_10.2.0.3-2_i386.deb
sudo dpkg -i oracle-instantclient-basic_10.2.0.3-2_i386.deb
wget http://cloud.github.com/downloads/saberma/saberma.github.com/oracle-instantclient-devel_10.2.0.3-2_i386.deb
sudo dpkg -i oracle-instantclient-devel_10.2.0.3-2_i386.deb
#非必須,sqlplus用于調試是否能正常連接配接
wget http://cloud.github.com/downloads/saberma/saberma.github.com/oracle-instantclient-sqlplus_10.2.0.3-2_i386.deb
sudo dpkg -i oracle-instantclient-sqlplus_10.2.0.3-2_i386.deb
#設定client路徑
export LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.3/client/lib/
#設定用戶端編碼(重要!否則會亂碼)
export NLS_LANG=AMERICAN_AMERICA.UTF8
#以上參數設定要放于全局設定檔案中
echo "export LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.3/client/lib/" >> ~/.bashrc
echo "export NLS_ >> ~/.bashrc
#測試sqlplus能連接配接到Oracle伺服器
#sqlplus myuser/[email protected]//myserver/mydatabase.mydomain.com
sqlplus zbs_ciis/[email protected]//192.168.1.29/orcl
desc users;
#正常的話應能傳回users表結構
#安裝ruby-oci8所需包
sudo apt-get install libaio1
#安裝ruby-oci8,注意不能使用sudo,否則無法正常擷取LD_LIBRARY_PATH參數
gem install ruby-oci8 --no-ri --no-rdoc --version 1.0.6
#注意,如果是mac平台,則安裝ruby-oci8前先定義以下參數,否則mkmf.log會報
#ld: warning: in /usr/local/oracle/instantclient/libclntsh.dylib, file is not of required architecture
#Undefined symbols for architecture i386:
# "_OCIInitialize", referenced from:
# _OCIInitialize$non_lazy_ptr in cc1EmgZD.o
#ld: symbol(s) not found for architecture i386
export ARCHFLAGS="-arch x86_64"
#一定要注意cpu的類型是intel(32bit?64bit?)還是ppc的,下載下傳時要區分
#測試
irb
require 'rubygems'
require 'oci8'
#不報錯,則表示直連正常
OCI8.new('ciis', 'ciis', '//192.168.1.29:1521/orcl')
#安裝rails資料庫擴充卡
sudo gem install saberma-activerecord-oracle_enhanced-adapter-nvarchar2 --no-ri --no-rdoc
#另外,資料庫的IP位址、使用者名密碼等在config/database.yml中配置