= MonetDB on rails =

This file documents the steps necessary to make rails working with MonetDB.
Database management in rails is performend via the ActiveRecord (ORM) adapter (http://api.rubyonrails.org/files/vendor/rails/activerecord/README.html).

The ruby/monetdb driver comes packaged as:

1) a standalone driver (only depends on ruby 1.8 and ruby 1.9);
2) and activerecord connector built on top of the standalone driver.

The following steps assumes that you already have obtained and installed a working copy of the rails framework and the 'rubygems' package manager.

For more informations about rubygems please refer to: http://rubyforge.org/projects/rubygems/

== Installation == 

On rpm base systems both the activerecord and standalone driver should be installed via the monetdb-clients package.
Please note that the building and installing process do not require root privileges.


=== Install the standalone driver ===

If you are using a source code version of monetdb cd into the driver directory located at './clients/src/ruby'

First build a gem file starting from the given gemspec:

$ gem build ruby-monetdb-sql-0.1.gemspec

and install the resulting gem with the command:

$ gem install --local ruby-monetdb-sql-0.1.gem


=== Install the activerecord connector ===

If you are using a source code version of monetdb cd into the activerecord adapter directory located at './clients/src/ruby/adapter'

First build a gem file starting from the given gemspec:

$ gem build activerecord-monetdb-adapter-0.1.gemspec

and install the resulting gem with the command:

$ gem install --local activerecord-monetdb-adapter-0.1.gem


== Configuration ==

Create a new rails application with the 'rails' command and cd into it:

$ rails myapp
$ cd myapp

This will create the usual Rails folder structure.

In order to start using rails with MonetDB as a backend we need to properly configure the databases by editing the file 'config/database.yml'

This is a sample configuration used to connect to a database named 'test':

  adapter: monetdb
  username: monetdb 
  password: monetdb
  hostname: localhost
  port:    50000
  database: test


Where adapter is the name of the activerecord connector you want to use (in this case 'monetdb').

The driver works either by directly connecting to a mserver5 instance or through merovingian. Make sure to create the database ('test') before proceeding.

Once the database.yml file as been properly configured proceed by creating the Controller files either manually or by using the scaffolding script:

$ ./script/generate scaffold

Operations on the database are performed in the fashion of rake tasks; once the Controllers have been properly created and customized, schemas can be generated with the  task 'migrate':

$ rake db:migrate

The current schema version number can be obtained with the task 'version':

$ rake db:version

It is possible to revert to previous schemas definitions via the 'rollback' task:

$ rake db:rollback

In the same way it is possible to drop all generated schemas with the 'drop' task:

$ rake db:drop:all

== References ==

What follows is a list of tutorials about getting started with rails.

1) http://www.akitaonrails.com/2007/12/12/rolling-with-rails-2-0-the-first-full-tutorial
2) http://oreilly.com/ruby/archive/rails.html
3) http://developer.apple.com/tools/rubyonrails.html
