読むとこ

http://devcenter.heroku.com/articles/heroku-command
http://devcenter.heroku.com/articles/ruby
http://devcenter.heroku.com/articles/procfile
http://theforeman.org/projects/foreman/wiki/Debian-Ubuntu_installation_by_packages
Bundlerって?

ロードするgemをサーバとローカルで揃え、かつバージョンを固定するためのもの。
http://www.oiax.jp/rails/rails3/bundler.html
stdoutがバッファリングされてheroku logsへの反映が遅れるのを回避

webプロセスは、config.ruに
$stdout.sync = true
workerプロセスは、エントリポイントの頭にでも書く
webプロセスなしで、デーモンのみを起動したい

git pushだけでは起動しない。以下で起動。workerはProcfileに書いた名前。
heroku scale worker=1
確認するには
heroku ps
1回scaleすれば、次回からはpushのみでOK。
ローカルではsqlite, herokuではpostgresqlにしたい

Gemfileを
gem 'sqlite3', :group => :development
gem 'pg', :group => :production
database.ymlはherokuが自動的に書き換えてくれるので、気にしなくていい
トラブルシューティング

MongoMapperを使用すると、push時にassets:precompileで失敗

production環境でのDBの設定が必要。mongo_mapper.rbも一部修正が必要。
http://www.iwazer.com/~iwazawa/diary/2011/12/heroku-rails3-mongolab-mongomapper.html