Pan*_*fox 13 migration rake capistrano ruby-on-rails passenger
我正在尝试使用capistrano部署我的rails应用程序,但是我在运行迁移时遇到了一些麻烦.在我的开发环境中,我只使用sqlite作为我的数据库,但在我的生产服务器上我使用MySQL.
问题是我希望迁移从我的服务器而不是本地计算机运行,因为我无法从远程位置连接到我的数据库.
我的服务器设置:运行ngnix,passenger,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时,一切正常,直到它尝试运行迁移.这是我得到的错误:
** [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)))
这就是我需要从服务器而不是从本地计算机运行迁移的原因.
有任何想法吗?
Zep*_*ock 41
尝试添加
after "deploy", "deploy:migrate"
Run Code Online (Sandbox Code Playgroud)
在config/deploy.rb文件中.这将在成功部署项目后在您的服务器上运行迁移.
您是否已将部署用户添加为服务器上的mysql用户?我认为localhost是服务器本身而不是本地机器.
您还没有在部署脚本中定义用户:
set :user, "deploy_user_name"
role :web, domain
role :app, domain
role :db, domain, :primary => true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18568 次 |
| 最近记录: |