Rails作業記録その3
なかなか本題に入らないわけですが、まだ入りません。あとで困らないようにsubversionでリポジトリ管理しておくことにします。
リポジトリの作成
xxx:/home/www$ su svn Password: svn:/home/www$ cd svn:~$ svnadmin create 2.5-55.jp svn:~$ svn mkdir file:///home/svn/2.5-55.jp/trunk -m 'mkdir trunk' svn:~$ svn mkdir file:///home/svn/2.5-55.jp/branches -m 'mkdir branches' svn:~$ svn mkdir file:///home/svn/2.5-55.jp/tags -m 'mkdir tags' svn:~$ exit
wwwディレクトリの構成
「/home/www」以下のディレクトリ構成です。ドメインごとにここにディレクトリを掘っています。trunkリポジトリをここにチェックアウトするつもりです。
www
-- 2.5-55.jp | |
-- app | |
-- config | |
-- db | |
-- doc | |
-- lib | |
-- log | |
-- public | |
-- script | |
-- test | |
-- tmp | |
`-- vendor | |
`-- plugins | |
-- bin |
rails-svnコマンド
いろいろとネットをググってみたところ「Railsアプリケーション作成時にレポジトリに一切合切入れてしまえ」という意見が多かったので、こちら(→http://wwwaku.com/blog_part2/2008/02/14/rails%e3%81%a8subversion%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9/)のrails-svnコマンドを導入することにしました。(手作業で1行ずつ実行してちゃんと動くことは確認済みです。"-d database"でDBを指定するところだけ少し変更しました)
#!/bin/bash if [ "$#" != "3" -a "$#" != "4" ]; then echo "Usage: rails-svn app_dir repository username [database]" exit 1 fi if [ "$#" -eq "4" ]; then if [ $4 != "mysql" -a $4 != "oracle" -a $4 != "postgresql" -a $4 != "sqlite2" -a $4 != "sqlite3" ]; then echo "Usage: rails-svn app_dir repository username [mysql/oracle/postgresql/sqlite2/sqlite3]" exit 1 fi DB_OPTION='-d '$4 else DB_OPTION= fi APPDIR=./$1 SVN_TRUNK=$2 SVN_USER=$3 function check_if_exist () { if -e $1 ; then echo "rails $APPDIR $DB_OPTION" echo "$1 already exists, overwrite? y or n" echo "" read OVERWRITE case "$OVERWRITE" in y) echo "Overwriting..." ;; *) echo "Action canceled" exit 1 ;; esac fi } check_if_exist ${APPDIR} rails $APPDIR $DB_OPTION svn import $APPDIR $SVN_TRUNK -m "Import" --username $SVN_USER sudo rm -r $APPDIR svn checkout $SVN_TRUNK $APPDIR cd $APPDIR svn remove log/* svn commit -m "removing log files" svn propset svn:ignore "*.log" log/ svn update log/ svn commit -m "Ignoring all files in /log/ ending in .log" svn move config/database.yml config/database.example svn commit -m "Moving database.yml to database.example to provide a template for anyone who checks out the code" svn propset svn:ignore "database.yml" config/ svn update config/ svn commit -m "Ignoring database.yml" svn remove tmp/* svn propset svn:ignore "*" tmp/ svn update tmp/ svn commit -m "ignore tmp/ content from now" svn propset svn:ignore ".htaccess" public/ svn update public/ svn commit -m "Ignoring .htaccess" svn propset svn:ignore "dispatch.fcgi" public/ svn update public/ svn commit -m "Ignoring dispatch.fcgi"http://wwwaku.com/blog_part2/2008/02/14/rails%e3%81%a8subversion%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9/
rails-svnの使い方
作成した「rails-svn」は「/usr/bin」へ移動させて、755属性(誰でも実行可)にしておきます。
xxx:~$ sudo mv rails-svn /usr/bin/ xxx:~$ s chmod 755 /usr/bin/rails-svn xxx:~$ rails-svn Usage: rails-svn app_dir repository username exit 1
「rails-svn」コマンドは、これからRailsアプリケーションを作成しようとするディレクトリ(ここでは「/home/www」)に移動してから使います。
xxx:~$ cd /home/www xxx:/home/www$ rails-svn 2.5-55.jp file:///home/svn/2.5-55.jp/trunk svn ./2.5-55.jp already exists, overwrite? y or n n Action canceled exit 1
「./2.5-55.jp」がすでにあるから上書きするかどうか聞いてきてます。もう一度やるのは嫌なのでNoにしましたが、Yesにすれば、ちゃんと動きます。
手作業での記録
xxx:/home/www$ APPDIR=./2.5-55.jp ← アプリディレクトリをセット xxx:/home/www$ echo $APPDIR ./2.5-55.jp xxx:/home/www$ SVN_TRUNK=file:///home/svn/2.5-55.jp/trunk ← リポジトリをセット xxx:/home/www$ echo $SVN_TRUNK file:///home/svn/2.5-55.jp/trunk xxx:/home/www$ SVN_USER=svn ← svnユーザをセット xxx:/home/www$ echo SVN_USER SVN_USER xxx:/home/www$ rails $APPDIR ← Railsアプリの作成 create create app/controllers create app/helpers create app/models : : : : create log/development.log create log/test.log xxx:/home/www$ svn import $APPDIR $SVN_TRUNK -m "Import" --username $SVN_USER ← できあがったRailsアプリをリポジトリにインポートします Adding 2.5-55.jp/test Adding 2.5-55.jp/test/unit Adding 2.5-55.jp/test/test_helper.rb : : Adding 2.5-55.jp/public/stylesheets Adding 2.5-55.jp/public/favicon.ico Committed revision 4. xxx:/home/www$ s rm -r $APPDIR ← 元のディレクトリはもういらないので削除 [sudo] password for xxx: xxx:/home/www$ svn checkout $SVN_TRUNK $APPDIR ← その代わりチェックアウトでディレクトリを作成します A 2.5-55.jp/test A 2.5-55.jp/test/unit A 2.5-55.jp/test/test_helper.rb
この項、続く
参考
- こちら(→http://wwwaku.com/blog_part2/2008/02/14/rails%e3%81%a8subversion%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9/)の通りに進めていきました。大変助かりました。ありがとうございました。