ruby-on-rails – Capistrano 3,Rails 4,数据库配置不指定适配器

当我开始

cap production deploy

它失败了这样:

DEBUG [4ee8fa7a] Command: cd /home/deploy/myapp/releases/releases/20131025212110 && (RVM_BIN_PATH=~/.rvm/bin RAILS_ENV= ~/.rvm/bin/myapp_rake assets:precompile )
DEBUG [4ee8fa7a]        rake aborted!
DEBUG [4ee8fa7a]        database configuration does not specify adapter

你可以看到“RAILS_ENV =”实际上是空的,我想知道为什么会发生这种情况?我认为这是后一个错误的原因,我没有数据库配置.

deploy.rb文件如下:

set :application,'myapp'
set :repo_url,'git@github.com:developer/myapp.git'
set :branch,:master
set :deploy_to,'/home/deploy/myapp/releases'
set :scm,:git
set :devpath,"/home/deploy/myapp_development"
set :user,"deploy"
set :use_sudo,false
set :default_env,{ rvm_bin_path: '~/.rvm/bin' }

set :keep_releases,5

namespace :deploy do
  desc 'Restart application'
  task :restart do
    on roles(:app),in: :sequence,wait: 5 do
      # Your restart mechanism here,for example:
      within release_path do
        execute " bundle exec thin restart -O -C config/thin/production.yml"
      end
    end
  end

  after :restart,:clear_cache do
    on roles(:web),in: :groups,limit: 3,wait: 10 do
      within release_path do

      end
    end
  end

  after :finishing,'deploy:cleanup'
end

database.yml的:

production:
  adapter: MysqL2
  encoding: utf8
  database: myapp_production
  pool: 5
  username: user
  password: pass
  host: localhost

development:
  adapter: MysqL2
  encoding: utf8
  database: myapp_development
  pool: 5
  username: user
  password: pass
  host: localhost

如果我补充说,问题是解决

set :rails_env,"production"

对我的deploy.rb,但这看起来像我的硬编码,我相信有一个更好的解决方案.

解决方法

编辑:每 this pull request,它现在修复在1.1.0的capistrano-rails.

每个this Github issue,另一个修复是编辑您的Capfile.评论这两行

#require 'capistrano/rails/assets'
#require 'capistrano/rails/migrations'

并把这一行放进去

require 'capistrano/rails'

这将正确设置您的RAILS_ENV变量.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...