なんとなく俺特になりそうだったので
リモートのgitのリポジトリ(githubとかいいよね)に置いている
Rails3なアプリのER図を出力するshell script書いてみたよー。
ちなみにMacで動作させる前提。
まず事前に
$ brew install graphviz
という形でgraphvizを放り込みます。
これが多分画像生成関連の何か(ちゃんと調べてない)。
そして
$ gem install railroady
してrailroadyというgemを放り込んでおきます。
これだけで目的の8割ぐらい終わってます。
次にこんなコードを適当にerd.shとかいう名前で保存しておきます。
#!/bin/sh
tmpdir=`uuidgen`
rep=$1
cd /tmp
mkdir $tmpdir
cd $tmpdir
echo "Cloning project..."
git clone $rep > /dev/null 2>&1
dir=`echo $rep | sed -e 's/.*\/\([^\/]*\)\.git$/\\1/'`
cd $dir
echo 'gem "activerecord-nulldb-adapter", :git => "git://github.com/nulldb/nulldb.git"' >> Gemfile
echo "Installing gems..."
bundle install > /dev/null 2>&1
echo "development:\n adapter: nulldb" > config/database.yml
echo "Generating ER diagram..."
railroady -M | neato -Tpng > models.png
open models.png
sleep 2
cd /tmp
rm -rf /tmp/$tmpdir
そしておもむろに
$ sh erd.sh git://github.com/jpwynn/plupload-rails3-sample-app-heroku.git
とかやると指定したリポジトリのRails3アプリケーションのER図がPreview.appで開かれます。
開いた後にファイルとかはごそっと消してます。
"rake db:migrate" とかそういうのがだるかったので
activerecord-nulldb-adapter ってのを利用してます。
ってのを作ったんだけど、
まあ、様々な条件でコケる(rspecとかmongoid使ってるとコケるっぽい)のでクソいけど飽きた。