railsアプリの欠点のひとつはファイルのアップロードが大変なことでしょう。
そこで次のようなrakeを作って、rsyncをつかってサーバと同期するようにしました。
これでテストサーバにアップロードするのが簡単になります。
deployするときはcapistranoの方が楽そうですが、開発段階ではいちいちsvnにコミットせねばならず無駄にコミットを繰り返すことになってしまいます。
おそらくこちらの方がよいでしょう。
参考につくったrakeファイルを置いておきます。これを lib/tasksに入れておけばOK。
SERVER=”username@domain.name”
APP_DIR=”/path/to/merb/root/”namespace “rsync” do
desc “do rsync”
task :do do
sh “rsync -avz –delete –exclude ‘.pid’ –exclude ‘log/’ –exclude ‘.svn/’ –exclude ‘tmp/’ –exclude ‘*~’ –progress ./ #{SERVER}:#{APP_DIR}”
enddesc “test rsync”
task :test do
sh “rsync -avz –delete –exclude ‘.pid’ –exclude ‘log/’ –exclude ‘.svn/’ –exclude ‘tmp/’ –exclude ‘*~’ –progress –dry-run ./ #{SERVER}:#{APP_DIR}”
end
enddesc “alias do rsync”
task :rsync => “rsync:do”desc “reset merb”
task :restart do
sh “ssh #{SERVER} touch #{APP_DIR}tmp/restart.txt”
end
これを使うと merb restart で再起動(mod_rack使用時のみ)でき、merb rsyncでrsyncを実行、merb rsync:testでrsyncの内容を確認することができます。
One Response for "merbのアップロードをrsyncで簡単にする"
[...] RSync http://blog.gijutsuya.jp/harajune/2008/12/14/merb%E3%81%AE%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83... http://www.aconus.com/~oyaji/backup/rsync.htm ■railsとアップロードsync [...]