ails项目连接oracle数据库时有2种方法
方法1
首先在自己本地的项目中引入两个gem gem ‘activerecord-oracle_enhanced-adapter’, ‘~> ’ gem ‘ruby-oci8’
gem 'activerecord-oracle_enhanced-adapter’它的版本选择可以直接去文挡中去查看,根据你的rails版本走的
执行bundle
这个时候你会发现有报错,是安装ruby-oci8是报错了,所以你需要安装oracle的客户端和sdk
mac下载地址 https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html linux下载地址
当我们下载OCI 和 SDK之后进行解压,然后将还在路径放在终端的配置中,如果你是zsh就放在 .zshrc , 如果你是bash 就放在 .bashrc中
export OCI_DIR=/Users/instantclient_21_1 export PATH=$PATH:/Users/instantclient_21_1 export DYLD_LIBRARY_PATH=/Users/instantclient_21_1 export NLS_LANG=
这些配置需要改成你自己文件放的位置,使用的是绝对路径,配置成功之后重新启动终端 这个时候bundle就不会报错了,可以顺利bundle成功
之后就项目中的配置了 首先我们在数库文件中添加配置(通过服务名进行连接的)(config/) 例如:
oracle_development:
adapter: oracle_enhanced
database: (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST='IP')(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCL)))
username: '用户名'
password: '密码'
之后我们可以在项目中创建一个文件,可以在lib下创建,也可以在model下创建 我是在lib下创建了一个文件叫 在文件中这样写
moduleOracleDataclassMember