【问题标题】:Capistrano deploy:migrate to database inside vpnCapistrano 部署:迁移到 vpn 内的数据库
【发布时间】:2013-06-07 16:46:45
【问题描述】:

我是 capistrano 和 rails 的新手。我已经在 AWS VPC 中的 AWS 中设置了我的生产环境。我的数据库只能在 VPC 内访问(通过 Web 应用程序和其中的其他节点)。

我从本地机器运行我的部署。有什么方法可以让 capistrano 从远程机器而不是我的本地机器本身运行 db:migrate。

在进行正常的 cap 生产部署时,capistrano 不应该尝试连接到我的数据库机器。

我在这上面浪费了将近一天的时间。任何帮助表示赞赏。如果需要,我可以提供更多详细信息。

【问题讨论】:

    标签: ruby-on-rails capistrano vpn amazon-vpc


    【解决方案1】:

    这是默认任务。运行:

    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
    

    【讨论】:

    • 当我从本地执行 cap production deploy:migrate 时,它​​会尝试连接到 config/deploy/production.rb 中指定的数据库。但是我的数据库只能在 vpn 内部访问。 Capistrano 应该 ssh 到我的 Web 节点,然后执行 db:migrate。该怎么做?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多