Gitから除外してしまうと、CapistranoはGitの内容をそのままもってくるので、デプロイされなくなってしまいます。
この場合の解決策は下記の通りです。
・Gitから外す
・デプロイ時に本番サーバー上にあるdatabase.ymlをもってくる
以下が実際の手順です。
1 サーバーにあるdatabase.ymlを別の場所にコピーする
sshとかでログインして、cpコマンドでコピーします。
cp /var/rails/(app_name)/current/config/database.yml ~/config
2 ローカルのGitからdatabase.ymlを外す
git rm config/database.yml --cachedつぎに無視ファイルに登録します。
vim .gitigrore下記を挿入します。
config/database.yml変更内容をインデックスに登録します。
git add .gitignore git add config/database.yml
3 config/deploy.rbを編集する
after "deploy:update_code", :config_database task :config_database, :roles => :app do config_file = "/home/rails/(app_name)/config/database.yml" run "cp #{config_file} #{release_path}/config/database.yml" endconfig_fileにはサーバー上においたdatabase.ymlのパスを指定します。
git add config/deploy.rb
4 変更内容をGitへコミットする
git commit -m "database.ymlをGitから除外する" git push origin master # 必要に応じて
5 デプロイする
cap deploy以上です。
参考資料:RailsによるアジャイルWebアプリケーション開発
0 件のコメント:
コメントを投稿