no_picture

database.ymlが.gitignoreに入っている環境でのcapistranoを使ったデプロイ

[2012-09-20日追記] 以下の記事の内容ですが、gemが用意されてました。 https://github.com/amfranz/capistrano_database_yml Railsプロジェクトで、ひとりで開発している場合は除いて、.gitignoreにconfig/database.ymlを追加することがよくよくあります。この場合、config/database.ymlをどこかのタイミングで作ってやらなければなりません。この対処法はこの記事で説明されてます。 概略 英語だったりするので簡単に説明をかいておきます。 前述の記事の作業を行うとcapコマンドにふたつのタスクが追加されます。 cap db:setup cap db:symlink db:setupはshared_pathにconfig/database.ymlに生成してくれます。すでにあると上書きされるので注意が必要です。 db:symlinkは db:setupで生成したconfig/database.ymlへsymlinkを貼ります。なので、#{shared_path}/config/database.yml手で編集しておけば良いということになります。 試したときに困ったことなど 記載されているコードをコピーして、capistrano_database.rbを作成するのですが、このファイルをどこに作成すべきなのか記述されていないので、lib上に作成しました。 libはLOAD_PATHが通ってないのに気付かなくて迷惑をかけました。 config/deploy.rbに require "capistrano_database"とするところをrequire "./lib/capistrano_database"として回避しました。 ところが、cucumberの実行時のオプションに--require libをつけているせいだと思いますが、cucumberの実行時に読み込まれてしまい不具合がでてしまったので、 Capistrano::Configuration.instance.load do .... end の部分を if instance = Capistrano::Configuration.instance instance.load do ... end end のように変更して回避しました。