我是 capistrano 和 rails 的新手。我已经在 AWS VPC 中的 AWS 中设置了我的生产环境。我的数据库只能在 VPC 内访问(通过 Web 应用程序和其中的其他节点)。
我从本地机器上运行我的部署。有没有办法让 capistrano 从远程机器而不是我的本地机器本身运行 db:migrate。
此外,在进行正常帽生产部署时,capistrano 不应尝试连接到我的数据库机器。
我在这上面浪费了将近一天的时间。任何帮助表示赞赏。如果需要,我可以提供更多详细信息。
我是 capistrano 和 rails 的新手。我已经在 AWS VPC 中的 AWS 中设置了我的生产环境。我的数据库只能在 VPC 内访问(通过 Web 应用程序和其中的其他节点)。
我从本地机器上运行我的部署。有没有办法让 capistrano 从远程机器而不是我的本地机器本身运行 db:migrate。
此外,在进行正常帽生产部署时,capistrano 不应尝试连接到我的数据库机器。
我在这上面浪费了将近一天的时间。任何帮助表示赞赏。如果需要,我可以提供更多详细信息。
这是默认任务。赶紧跑:
cap deploy:migrate
有关更多信息,请查看https://github.com/capistrano/capistrano/wiki/Capistrano-Tasks
或者您可以尝试将任务添加到您的 deploy.rb:
desc "rake task"
task :rake do
run "bash -l -c 'cd #{current_release}; \
sudo `which rvm` `rvm current` do rake #{ARGV[1..-1].join(' ')} RAILS_ENV=production'"
exit
end
并像这样运行:
cap rake db:migrate