# Activerecord::Netezza::Adapter ActiveRecord JDBC adapter for Netezza backends. The organization of the adapter was cribbed wholesale from [Nick Sieger's CacheDB adapter][cachedb.git]. Any errors are my own. [cachedb.git]: https://github.com/nicksieger/activerecord-cachedb-adapter ## The Ugly Hack Netezza does not have a data type to map to `:text` and `:binary`. You can use [activerecord-jdbc-adapter][arjdbc.git] to connect if you remove those data types from the type converter lookup hash `AR_TO_JDBC_TYPES`. Here's the monkey patch to do so: [arjdbc.git]: https://github.com/jruby/activerecord-jdbc-adapter ```ruby # Not really recommended require 'arjdbc/jdbc/type_converter' module ActiveRecord module ConnectionAdapters class JdbcTypeConverter AR_TO_JDBC_TYPES.delete(:text) AR_TO_JDBC_TYPES.delete(:binary) end end end ``` One of the disadvantages of this monkeypatch is that within a codebase using ARJDBC and the patch, no other JDBC driver will have the `:text` and `:binary` data types. This gem is intended to confine the removal of types to only database connections using this adapter. ## Installation Add these lines to your application's Gemfile: ```ruby gem 'activerecord-netezza-adapter', :git => 'https://github.com/robbkidd/activerecord-netezza-adapter' ``` And then execute: $ bundle Or install it yourself as: $ gem install activerecord-netezza-adapter Place the Netezza JDBC driver--not distributed with this gem--in your JRuby classpath. For example, place nzjdbc3.jar in vendor/lib/java. If using Warbler to deploy your app as a WAR, include the following in config/warble.rb ```ruby config.java_libs += FileList["vendor/lib/java/*.jar"] ``` ## Usage Define your database connection information as expected: ```yaml development: adapter: netezza host: nzhostname database: dbname user: username password: $up3r$3cr3t! ``` ## Contributing 1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Added some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create new Pull Request