トップ «前の日記(2007-12-25) 最新 次の日記(2007-12-30)» 編集

Ussy Diary


2007-12-28

[Ruby][Ubuntu]AR はすごいけどまずは DBI

ActiveRecord(AR) を触ってみました。今更ですがこれはすごい。

Migration の便利さ。 ActiveRecord::Base を継承するだけでモデル になってしまう簡単さ。条件の指定方法の直感性など色々おお!と感じました。

ただ触った程度であれですが、複数のデータベースに接続するときに 問題になりそうな設計(ActiveRecord::Base.establish_connection)だと思います。

「activerecord 複数」などで検索すると対応方法はあるようですが、 複数データベースは推奨されていないみたいです。

触ったきっかけは CGI を書き始めて、そろそろデータベースとの連携でもやろうと思ったから ですが、 AR は接続や一度目のアクセスに時間がかかります。 あれだけ便利な機能を提供してくれているので当然だと思います。

WEBRick (実運用では厳しいそうですが)や FastCGI といった 同一プロセス内でリクエストを繰り返しさばくやり方であれば、 いちいち初期化してしまうこともなくパフォーマンスを出せますよね。

ただ簡単な WEB アプリを作りたい (CGI/mod-ruby) 場合は大げさで、 text(CSV) で保存することも考えましたがファイルロックの実装や データが膨らんだときの処理をさぼりたい、といった理由からやめました。

やっぱりそこはデータベースであり、データベースに依存するコードを 可能な限り書きたくないので DBI を選択することにしました。

レンタルサーバで Ruby/DBI をサポートしていなかったらどうしようもありませんが(汗)。

DBI に慣れたら CGI 向けな O/R マッパーも探したい(つくってもみたい)です。

実際にインストールは Ubuntu で行いました。

MySQL の DBI 連携用パッケージがすでに用意されていてコマンドひとつでインストール完了。

sudo apt-get install libdbd-mysql-ruby

後はリファレンスや詳しく解説してくれているところへ。

そういえば apt-get は古いようで、最近は aptitude を使うみたいです。