JRuby on RailsでSQLite3を使うための覚え書き

JRubyRuby on Rails を使うこと自体はそんなに難しくない。でも、Mac OS Xに付いてるSQLite3をデータベースに使う設定が色々面倒で、Web上の情報も少なかったので、覚え書き。

動作環境

  1. Mac OS X 10.6.5
  2. JRuby 1.5.5 (ruby 1.8.7相当)
  3. Ruby on Rails 3.0.3

SQLite3を使う手順

1. JRubyをインストール

ここを参考にインストール。
http://kenai.com/projects/jruby/pages/GettingStarted

2. Railsと必要なモジュールをインストール

下記のコマンドを実行。

sudo jruby -S gem install rails activerecord-jdbcsqlite3-adapter

SQLite3を使うのに activerecord-jdbcsqlite3-adapter が必要。関連モジュールは gem が自動でインストールしてくれる。

3. Rails を動かす
3.1 アプリケーション作成

ここの簡易ブログアプリを途中まで作ってみる。
Getting Started with Rails — Ruby on Rails Guides

jruby -S rails new blog
cd blog
3.2 設定ファイル変更

SQLite3を使うために、設定ファイルを変更。
下記を参考に、試行錯誤した。
http://jruby-extras.rubyforge.org/activerecord-jdbc-adapter/

Gemfile の変更
gem 'sqlite3-ruby', :require => 'sqlite3'

上記の記述を、下記に変更。

if defined?(JRUBY_VERSION)
  gem 'activerecord-jdbcsqlite3-adapter'
else
  gem 'sqlite3-ruby', :require => 'sqlite3'
end
config/database.yml の変更
development:
  adapter: sqlite3

アダプターの指定を、下記に変更。

development:
  adapter: jdbcsqlite3
3.3 Scaffold

あとは、普通にRailsで開発。

jruby -S rails generate scaffold Post name:string title:string content:text
jruby -S rake db:migrate
3.4 アプリケーション実行
jruby -S rails server

http://localhost:3000/posts を開いて、動作確認。

(おまけ)便利なAlias

いちいち "jruby -s" と入力するのが面倒なので、以下の設定を .bash_profile あたりに入れると便利。

alias jrails="jruby -S rails"

"ruby -S rails"と入れる代わりに、"jrails"で済むようになる。