使用capistrano部署database.yml时出错

时间:2013-03-13 10:10:39

标签: ruby-on-rails-3 deployment capistrano

我已将config/database.yml添加到我的.gitignore文件中。并将此添加到deploy.rb文件

namespace(:customs) do
   task :symlink_db, :roles => :app do
    run "cp #{shared_path}/config/database.yml #{release_path}/config/database.yml"
  end
end
after "deploy:update_code", "customs:symlink_db"

但现在我跑cap deploy。我收到了错误

No such file or directory - /var/www/XXXX/releases/20130313100825/config/database.yml

我该如何解决?

注意:此前已经发布了一个版本。我对应用程序进行了一些更改并再次部署它。

由于

1 个答案:

答案 0 :(得分:2)

您想使用符号链接,因为它不关心源文件是否存在。

task :symlink_db_yml do
  run "ln -s #{shared_path}/config/database.yml #{release_path}/config/database.yml"
end

并且您希望在bundle:install之前执行它,因为新的应用程序目录不是在deploy:update_code阶段创建的。

before 'bundle:install', 'customs:symlink_db_yml'