forked from jruby/activerecord-jdbc-adapter
-
Notifications
You must be signed in to change notification settings - Fork 0
ActiveRecord adapter for JDBC and JRuby<br>Alternate clone at git://kenai.com/activerecord-jdbc~main
<span><a href="http://activerecord-jdbc.kenai.com/">http://activerecord-jdbc.kenai.com/</a></span>
License
sholden/activerecord-jdbc-adapter
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
activerecord-jdbc-adapter is a database adapter for Rails' ActiveRecord component that can be used with JRuby[http://www.jruby.org/]. It allows use of virtually any JDBC-compliant database with your JRuby on Rails application. == Databases What's there, and what is not there: * MySQL - Complete support * PostgreSQL - Complete support * Oracle - Complete support * Microsoft SQL Server - Complete support except for change_column_default * DB2 - Complete, except for the migrations: * change_column * change_column_default * remove_column * rename_column * add_index * remove_index * rename_table * FireBird - Complete, except for change_column_default and rename_column * Derby - Complete, except for: * change_column * change_column_default * remove_column * rename_column * HSQLDB - Complete * H2 - Complete * SQLite3 - work in progress * Informix - Fairly complete support, all tests pass and migrations appear to work. Comments welcome. Other databases will require testing and likely a custom configuration module. Please join the activerecord-jdbc mailing-lists[http://kenai.com/projects/activerecord-jdbc/lists] to help us discover support for more databases. == Using ActiveRecord JDBC === Inside Rails To use activerecord-jdbc-adapter with JRuby on Rails: 1. Choose the adapter you wish to gem install. The following pre-packaged adapters are available: * base jdbc (<tt>activerecord-jdbc-adapter</tt>). Supports all available databases via JDBC, but requires you to download and manually install the database vendor's JDBC driver .jar file. * mysql (<tt>activerecord-jdbcmysql-adapter</tt>) * postgresql (<tt>activerecord-jdbcpostgresql-adapter</tt>) * derby (<tt>activerecord-jdbcderby-adapter</tt>) * hsqldb (<tt>activerecord-jdbchsqldb-adapter</tt>) * h2 (<tt>activerecord-jdbch2-adapter</tt>) 2. If you're using Rails 2.0, you may skip to the next step. For Rails prior to version 2.0, you'll need to add one-time setup to your config/environment.rb file in your Rails application. Add the following lines just before the <code>Rails::Initializer</code>. (If you're using activerecord-jdbc-adapter under the old gem name used in versions 0.5 and earlier (ActiveRecord-JDBC), replace 'activerecord-jdbc-adapter' with 'ActiveRecord-JDBC' below.) if RUBY_PLATFORM =~ /java/ require 'rubygems' gem 'activerecord-jdbc-adapter' require 'jdbc_adapter' end 3. Configure your database.yml to use the <code>jdbc</code> adapter. For mysql, postgres, derby, oracle, hsqldb, h2, and informix you can simply configure the database in the normal Rails style. If you use one of the convenience 'activerecord-jdbcXXX-adapter' adapters, be sure and put a 'jdbc' prefix in front of the databas adapter name as below. development: adapter: jdbcmysql username: blog password: hostname: localhost database: weblog_development For other databases, you'll need to know the database driver class and URL. Example: development: adapter: jdbc username: blog password: driver: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/weblog_development === Standalone, with ActiveRecord 1. Install the gem with JRuby: jruby -S gem install activerecord-jdbc-adapter If you wish to use the adapter for a specific database, you can install it directly and a driver gem will be installed as well: jruby -S gem install activerecord-jdbcderby-adapter 2. If using ActiveRecord 2.0 (Rails 2.0) or greater, you can skip to the next step. Otherwise, ensure the following code gets executed in your script: require 'rubygems' gem 'activerecord-jdbc-adapter' require 'jdbc_adapter' require 'active_record' 3. After this you can establish a JDBC connection like this: ActiveRecord::Base.establish_connection( :adapter => 'jdbcderby', :database => "db/my-database" ) or like this (but requires that you manually put the driver jar on the classpath): ActiveRecord::Base.establish_connection( :adapter => 'jdbc', :driver => 'org.apache.derby.jdbc.EmbeddedDriver', :url => 'jdbc:derby:test_ar;create=true' ) == Getting the source The source for activerecord-jdbc-adapter is available using git. git clone git://github.com/nicksieger/activerecord-jdbc-adapter.git == Running AR-JDBC's Tests Drivers for 4 open-source databases are included. Provided you have MySQL installed, you can simply type <tt>jruby -S rake</tt> to run the tests. A database named <tt>weblog_development</tt> is needed beforehand with a connection user of "blog" and password empty. If you want rails logging enabled during these test runs you can edit test/jdbc_common.rb and add the following line: require 'db/logger' == Running AR Tests # If you want to run MRI against Rails remember to re-export RUBYLIB to be # empty (or whatever you normally have it set to when you are done). export RUBYLIB=$(find $PWD -name lib -type d | grep -v pkg | ruby -e 'puts $stdin.readlines.map{|l| l.chomp}.join(":")') cd active_record_source_dir jruby -S rake test_jdbcmysql (or specific adapter you want to test) == Authors This project was written by Nick Sieger <[email protected]> and Ola Bini <[email protected]> with lots of help from the JRuby community. == License activerecord-jdbc-adapter is released under a BSD license. See the LICENSE file included with the distribution for details. Open-source driver gems for activerecord-jdbc-adapter are licensed under the same license the database's drivers are licensed. See each driver gem's LICENSE.txt file for details.
About
ActiveRecord adapter for JDBC and JRuby<br>Alternate clone at git://kenai.com/activerecord-jdbc~main
<span><a href="http://activerecord-jdbc.kenai.com/">http://activerecord-jdbc.kenai.com/</a></span>
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published