我试图部署我的导轨应用程序与capistrano,但我在运行我的迁移时遇到了一些麻烦。在我的开发环境中,我只使用sqlite作为数据库,但在我的生产服务器上使用MySQL。在与capistrano部署时在服务器上运行迁移
问题是我希望迁移从我的服务器而不是我的本地机器运行,因为我无法从远程位置连接到我的数据库。
我的服务器设置: 运行ngnix,passenger,mysql和git存储库的debian box。
这样做最简单的方法是什么?
更新:
这里是我的部署脚本:(我代替我的实际域名与example.com)
set :application, "example.com" set :domain, "example.com" set :scm, :git set :repository, "[email protected]:project.git" set :use_sudo, false set :deploy_to, "/var/www/example.com" role :web, domain role :app, domain role :db, "localhost", :primary => true after "deploy", "deploy:migrate"
当我运行帽部署,一切工作正常,直到它试图运行迁移。 这里是我得到的错误:
** [deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: localhost (Errno::ECONNREFUSED: Connection refused - connect(2)) connection failed for: localhost (Errno::ECONNREFUSED: Connection refused - connect(2)))
这就是为什么我需要运行从服务器迁移,而不是从我的本地机器。
任何想法?
好吧,部署用户名与我的本地用户名相同。另外,当我登录并通过ssh运行迁移时,它工作正常。 – Pandafox 2010-06-17 21:03:46
嗯。其实你发布的错误是在update_code上。我可以只检查一下,你的应用程序实际上是否被称为example.com,你做了cap部署:setup和cap deploy:从你的本地机器检查? example.com只是你在这里隐私的一部分,我接受了吗? – mark 2010-06-17 21:07:41
嘿,是的,我用我的example.com替换了我的真实域名以获得隐私。代码部署到我的服务器就好了,只是capistrano试图在我的本地机器上运行迁移,而不是在服务器上:) – Pandafox 2010-06-17 21:14:26