The ruby-oci8 gem and legacy Oracle database

Preview:

DESCRIPTION

The ruby-oci8 gem and legacy Oracle database. Oracle!!!!. EZ DC Application. Existing Java application with Oracle 11gR2 data store Collect data about peer reviews Number of attendees Length of meeting Number of defects found Action items - PowerPoint PPT Presentation

Citation preview

The ruby-oci8 gem and legacy Oracle

database

Oracle!!!!

EZ DC ApplicationExisting Java application with Oracle 11gR2 data store

Collect data about peer reviewsNumber of attendeesLength of meetingNumber of defects foundAction items

Replaces individual Word document for each review

Provides the ability to create and publish reports

EZDC Admin ApplicationMissing admin functionality

Adding, deleting, updating usersAdding new contractsImplementing changes to peer reviewsDelete tickets from releases

Reasons for creating a separate applicationNo budget for expanding the EZ DC appSimpler to implement securityThe Geniuses In Disguise™ need practice with Rails

Hey kids! Let’s put on a show!

build a Rails app!

Architecture

Oracle DB

EZ DC AdminEZ DC

Project User

Admin User

Ch-ch-changesAdjustments to “The Rails Way” to use the legacy Oracle database

Communicating with Oracle

We’ll be back

The Rails Partis the Easy Part

Gemsruby-oci8 (http://ruby-oci8.rubyforge.org/en/)activerecord-oracle_enhanced-adapter (https://github.com/rsim/oracle-enhanced)

database.yml

user.rb (for example)

Gemfilesource 'https://rubygems.org'

gem 'rails', '3.2.13'gem 'bootstrap-sass'

# To use ActiveModel has_secure_password# gem 'bcrypt-ruby'

group :development, :test do gem 'ruby-oci8', '2.1.5' gem 'activerecord-oracle_enhanced-adapter', '1.4.1’end

database.yml# Oracle/OCI 8i, 9, 10g# Requires Ruby/OCI8:# http://rubyforge.org/projects/ruby-oci8/## for database running in localhost with application# database: 127.0.0.1/xe# for database running in a separate VM from application# << IP address >> / xe

development: adapter: oracle_enhanced database: 192.168.195.58:1521/xe username: <<user_name>> password: <<password>>

user.rb# == Schema Information# Table name: cmmi_user# cmmi_user_id :integer not null, primary key

class User < ActiveRecord::Base

# specify schema and table name self.table_name = 'cmmi_user' # specify primary key name self.primary_key = 'cmmi_user_id' # specify sequence name self.sequence_name = 'cmmi_user_id_seq'

Rails to Oracle Comm Path

ruby-oci8

activerecord-oracle_enhanced-

adapter

Oracle Instant Client

Oracle 11gR2Database

Oracle Instant ClientDownload and unzip the required packages:

Oracle Instant Client Package – Basic LiteOracle Instant Client Package – SQL*PlusOracle Instant Client Package – SDK (optional)

Create a symbolic link to the instant client library:

$ sudo ln -s libclntsh.so.11.1 libclntsh.so

Set the library search path:LD_Library_Path on LinuxDYLD_Library_Path on Mac OS X

VM Static IPUsing a virtual machine with IP address assigned dynamically by DHCP at startup

Fix a static IP address by modifying VM config file:/Library/Preferences/VMware Fusion/vmnet8/dhcpd.conf

####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######

host Windows_8_x64_100GB { hardware ethernet 00:0C:29:D4:60:40; fixed-address 192.168.195.58;}

Referencesruby-oci8

http://ruby-oci8.rubyforge.org/

activerecord-oracle_enhanced-adapterhttps://github.com/rsim/oracle-enhanced

DHCP on VMware Fusionhttp://www.thirdbit.net/articles/2008/03/04/dhcp-on-vmware-fusion/

Oracle Instant Clienthttp://ruby-oci8.rubyforge.org/en/file.install-instant-client.htmlhttp://www.oracle.com/technetwork/database/features/instant-client/index-100365.html?ssSourceSiteId=ocomen

Environment Variableshttps://help.ubuntu.com/community/EnvironmentVariableshttps://bugs.launchpad.net/ubuntu/+source/xorg/+bug/366728

Questions?

Recommended