I helped to testing ActiveRecord-JDBC with DB2 on my Macmini. But there are two big traps. In this article, I write about the second trap : Testing ActiceRecord-JDBC with DB2 on Mac OS X.
Clone sources and tests from repository
$ git clone http://github.com/nicksieger/activerecord-jdbc-adapter.git
create database for test with CUI
Because of DB2 Express-C V9.5.2 beta for MAC OS X, there are no DB2 Control Center (GUI). So we must create database from DB2 command line processor (CLP).$ db2 create database blog_dev on ~/weblog_development using codeset UTF-8 territory my_territory collate using SYSTEMFor instance, I set my territory as JP. Then check the conenction to blog_dev database.
$ db2 connect to blog_dev user instance_user_name using instance_user_password $ db2 disconnect
Fix test file for DB2
The content of activerecord-jdbc-adapter/test/db/db2.rb from repository is below:config = {But, there are 3 points to fix.
:username => "blog",
:password => "",
:adapter => "jdbc",
:driver => "com.ibm.db2.jcc.DB2Driver",
:url => "jdbc:db2:weblog_development"
}
ActiveRecord::Base.establish_connection(config)
- Because DB2's database user is deeply integrated with OS user, Empty password is not recommended. We should use OS user and password.
- Because Database name longer than 8 characters is not allowed in DB2, we must use database name shorter than 8 characters.
- Because DB2 for Mac OS X has BUGGY driver for type-2 connection, we must use type-4 connection.
config = {As you see, I have set the database name as blog_dev in previous instructions, this is the reason.
:username => "instance_user_name",
:password => "instance_user_password",
:adapter => "jdbc",
:driver => "com.ibm.db2.jcc.DB2Driver",
:url => "jdbc:db2://localhost:50000/blog_dev"
}
ActiveRecord::Base.establish_connection(config)
prepare test
Of course, we must install active-record in JRuby from gem. And one more instruction is below:$ cd activerecord-jdbc-adapter $ jruby -S rake java_compile
Test
For instance, test with active-record 2.3.9:$ jruby -S rake test_db2 AR_VERSION=2.3.9For instance, test with active-record 3.0.0:
$ jruby -S rake test_db2 AR_VERSION=3.0.0
No comments:
Post a Comment