tDiary on heroku は heroku postgres に保存したデータを取り出すのに Sequel を使ってるんだけど、Sequel は ORM としてちゃんと対応してないようなデータをえいやーと取り出したり保存したり時に便利。公式サイトのドキュメントが充実しているので、そこを見ればだいたいの事は書いてあるけど、さくっと使うなら下のような感じ。
db = Sequel.connect('postgres://hsbt:''@localhost/tdiary_development')
db['diaries'].insert(:date => '20110204', :body => 'bob')
db['diaries'].filter(:date => '20110204').update(:body => 'alice')
tDiary は Rack の上で動くと行っても DB 接続のような設定に関する項目を Rack レベルで永続化する仕組みを持ってないので、下のように block で呼び出してその都度接続したり切断したりするようにした。
Sequel.connect(...) do |db|
db.transaction do
db['diaries'].insert(:date => '20110204', :body => 'bob')
end
end
ドキュメントを読むと ORM として使ったり、migration の仕組みも持っていたりするみたいなんだけど、そこまでやるなら ActiveRecord でいいかなーとも思う。