No commit activity in last 3 years
No release in over 3 years
This gem includes several enhancements and customizations to the standard ActiveRecord Oracle Enhanced adapter, which is still required. Any customizations to this adapter's behaviour or additional Oracle-specific utilities should be added here.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

oracle-enhanced-enhanced¶ ↑

While an outstanding offering that enables us to use Oracle as our database (whether we like it or not), the Oracle Enhanced ActiveRecord Adapter (link) has a few behaviours that I find myself overriding in all my Rails projects. Made sense to throw them all into a gem.

How It Works¶ ↑

Add this gem to your project and it will override the following defaults:

  • sequences will be created with the start_value options: 1 NOCACHE ORDER

  • cache_columns is set to true, saving loads in terms of data dictionary lookups (but requiring a restart if you change a table)

  • primary/foreign key columns will be created as NUMBER(12) instead of NUMBER(38)

  • integer columns will default to NUMBER(12) instead of NUMBER(38)

  • TEXT fields are stored as VARCHAR2(4000) instead of CLOB

Converting CLOB Columns to VARCHAR2¶ ↑

You can convert existing CLOB columns to VARCHAR2(4000) in a migration using:

class ConvertTextColumns < ActiveRecord::Migration
  def self.up
    convert_clob_to_varchar2 :table_name, :column_name
  end

  def self.down
    convert_varchar2_to_clob :table_name, :column_name
  end
end

You can optionally specify the VARCHAR2 size as a third parameter to convert_clob_to_varchar2.

Other Methods¶ ↑

You can at any time change the text representation by calling set_text_storage_representation. See the rdoc for more details.

There are also helper methods text_is_clob? and text_is_varchar2?, and a new constant VARCHAR2_MAX_LENGTH. Note that these are added to ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.

Known Issues¶ ↑

None

Contributing¶ ↑

  • Check out the latest master to make sure the feature hasn’t been implemented or the bug hasn’t been fixed yet

  • Check out the issue tracker to make sure someone already hasn’t requested it and/or contributed it

  • Fork the project

  • Start a feature/bugfix branch

  • Commit and push until you are happy with your contribution

  • Make sure to add tests for it. This is important so I don’t break it in a future version unintentionally.

  • Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.

Copyright © 2011 Steve Lamotte. See LICENSE.txt for further details.