Skip to content

yohaneslumentut/db2_odbc_adapter

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DB2 ODBCAdapter

Gem Version

An ActiveRecord DB2 ODBC adapter. It is a fork of ActiveRecord odbc_adapter with a minor hack so that it can work only with DB2 Connection on Rails 6+.

Installation

Ensure you have the ODBC driver installed on your machine. And have a DB2 server to connect.

Add this line to your application's Gemfile:

gem 'db2_odbc_adapter'

And then execute:

  $ bundle

Or install it yourself as:

  $ gem install db2_odbc_adapter

Usage

Configure your database.yml by using the dsn to point to a DSN that corresponds to a valid entry in your ~/etc/odbc.ini file. Since Rails 6+ support multiple database, so the database configuration is as follow:

# config/database.yml

default: &default
.
.
.
db2_connection: &db2_connection   // as you wish
  adapter: odbc                   // compulsory 
  dsn: YourDatabaseDSN            // as in the odbc.ini file

development:
  primary:
    .
    .
    .
  db2:
    <<: *db2_connection

test:
  primary:
    .
    .
    .
  db2:
    <<: *db2_connection

production:
  primary:
    .
    .
    .
  db2:
    <<: *db2_connection

and use it at your model as follow.

Single table connection

  class MyTable < ActiveRecord::Base
    establish_connection :db2
    self.table_name  = "TableName"       #table name at DB2 server
    self.primary_key = 'column_name'    #colum that have unique content since db2 have RRN instead of id 
  end

Raw SQL connection

  class MyCustomModel < ActiveRecord::Base
    establish_connection :db2
    scope :scope_name, -> arg {
      connection.exec_query("SELECT * FROM .........WHERE ..'#{arg}...")
    }
  end

ActiveRecord models that use this connection will now be connecting to the configured database using the ODBC driver.

License

The gem is available as open source under the terms of the MIT License.

About

An ActiveRecord DB2 ODBC adapter

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%