【发布时间】:2016-11-10 07:19:16
【问题描述】:
我在准备生产服务器时遇到了 Capistrano 的一个奇怪问题。当我运行 cap production deploy 时,它总是在 deploy:migrate 步骤失败,使用
ActiveRecord::AdapterNotSpecified: 'production' 数据库不是 配置。可用:[“默认…
然而,当我运行cap production deploy:migrate 时,Capistrano 成功完成。
在实际服务器上,我也可以毫无问题地运行RAILS_ENV=production bundle exec rake:migrate。
Capistrano 日志为两者输出相同的命令:
[deploy:migrate] 运行
rake db:migrate
我的数据库配置如下所示:
production:
adapter: mysql2
encoding: utf8
database: foo
host: localhost
pool: 5
timeout: 5000
username: bar
password: password
socket: /opt/bitnami/mysql/tmp/mysql.sock
我还应该提到,我在 deploy.rb 中设置了 rails env,如下所示:set :rails_env, :production
这是我的 gemfile 中的相关信息:
gem 'mysql2', '~> 0.4.5'
group :development do
gem 'capistrano', '~> 3.6', '>= 3.6.1'
gem 'capistrano-rvm'
gem 'capistrano-bundler'
gem 'capistrano-rails'
gem 'capistrano-passenger'
end
任何人都可以阐明我在这里缺少什么吗?我是 Capistrano 的新手。
【问题讨论】:
-
当它拉出最新代码(新文件夹...)时,它是否有可能在正确设置 database.yml 之前尝试运行迁移?
-
根据日志,我不相信会发生这种情况,我可以看到它在迁移前 6 个步骤运行 git 命令等。
标签: ruby ruby-on-rails-3 deployment capistrano3