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 を使うみたいです。