ruby-on-rails-3 - 使用 capistrano 部署 database.yml 时出错

标签 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。我收到错误

没有这样的文件或目录 -/var/www/XXXX/releases/20130313100825/config/database.yml

如何修复它?

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

谢谢

最佳答案

您想要使用符号链接(symbolic link),因为它不会关心源文件是否不存在。

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'

关于ruby-on-rails-3 - 使用 capistrano 部署 database.yml 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15382284/

相关文章:

rvm - 使用 capistrano 和 rvm-capistrano 进行部署

ruby-on-rails - 需要解释在 Controller 的多种方法之间共享数据的最佳实践

ruby-on-rails - 将 Devise Login 设置为根页面

wordpress - 如何将 WordPress 安装升级并部署为 Git 子模块?

qt - 如何在 Mac OS X 上部署依赖 Phonon 的 Qt4/PyQt4/python 应用程序?

git - 使用 Capistrano 3 部署 git 子模块

ruby - 将法语(重音)字符放入 Ruby 文件中

ruby-on-rails - Rails 范围 : Select Distinct Title With Values

java - 将 WAR 文件部署到 Tomcat 7

ruby-on-rails-3 - Redis上的ECONNREFUSED怎么办?