我正试图用capistrano部署我的rails应用程序,但是我在运行我的迁移时遇到了麻烦.在我的开发环境中,我只使用sqlite作为我的数据库,但在我的生产服务器上,我使用
MySQL.
问题是我希望迁移从我的服务器而不是我的本地机器运行,因为我无法从远程位置连接到我的数据库.
我的服务器设置:
运行ngnix,乘客,mysql和git仓库的debian框.
最简单的方法是什么?
更新:
这是我的部署脚本:(我用example.com替换了我的实际域)
set :application,"example.com" set :domain,"example.com" set :scm,:git set :repository,"git@example.com: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"
当我运行cap部署时,一切都正常,直到它尝试运行迁移.
这是我得到的错误:
** [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)))
这就是为什么我需要从服务器运行迁移,而不是从我的本地机器运行.
有任何想法吗?
解决方法
您是否在服务器上添加了部署用户作为mysql用户?我认为localhost是服务器,而不是本地机器.
您还没有在部署脚本中定义用户:
set :user,"deploy_user_name" role :web,domain,:primary => true
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。