Capistrano 3: KeyError: ключ не найден: постановка

Я пытаюсь развернуть на промежуточный сервер:

config/deploy/shared/staging.rb

server 'Server_IP', user: 'deploy', roles: %w{app primary db}

set :rails_env, 'staging'

namespace :deploy do
end

развернуть.rb

(...)
# Default value for :linked_files is []
set :linked_files, fetch(:linked_files, []).push(*[
  "config/database.yml", "config/resque-pool.yml", "config/unicorn.rb"
])
(...)

На сервере... общая папка/config/database.yml

staging:
  adapter: "mysql2"
  database: "my_app"
  encoding: "utf8"
  host: "127.0.0.1"
  username: "deploy"
  password: "mypassword"
  reconnect: true
  port: 3306

Настройки БОГА:

God.watch do |w|
(...)
w.env = {
"HOME" => "",
      "RAILS_ENV" => "staging",
      "SECRET_KEY_BASE" => "here my secret key base",
      "PATH" => "/opt/rubies/ruby-2.2.4/bin:#{ENV["PATH"]}"
}
(...)
w.start = "/opt/rubies/ruby-2.2.4/bin/bundle exec unicorn_rails -c /var/www/my_app/current/config/unicorn.rb -E staging -D"

Я понятия не имею, почему у меня возникла ошибка, а: be cap staging deploy

INFO [f85a78fc] Running bundle exec rake db:migrate as deploy@Server_IP
DEBUG [f85a78fc] Command: cd /var/www/my_app/releases/12345678 && ( export PATH="/opt/rubies/ruby-2.2.4/bin:$PATH" RAILS_ENV="staging" ; bundle exec rake db:migrate )
DEBUG [f85a78fc]    rake aborted!
DEBUG [f85a78fc]    
DEBUG [f85a78fc]    KeyError: key not found: "staging"

Обновлять:

Таким образом, обновление имеет дополнительную трассировку

be cap staging deploy --trace

(...)
INFO [deploy:migrate] Run `rake db:migrate`
** Invoke deploy:migrating (first_time)
** Invoke deploy:set_rails_env 
** Execute deploy:migrating
DEBUG [1eca7cab] Running if test ! -d /var/www/my_app/releases/1234567823487; then echo "Directory does not exist '/var/www/my_app/releases/1234567823487'" 1>&2; false; fi as deploy@Server_IP
DEBUG [1eca7cab] Command: if test ! -d /var/www/my_app/releases/1234567823487; then echo "Directory does not exist '/var/www/my_app/releases/1234567823487'" 1>&2; false; fi
DEBUG [1eca7cab] Finished in 0.145 seconds with exit status 0 (successful).
INFO [da77a5e6] Running bundle exec rake db:migrate as deploy@Server_IP
DEBUG [da77a5e6] Command: cd /var/www/my_app/releases/1234567823487 && ( export PATH="/opt/rubies/ruby-2.2.4/bin:$PATH" RAILS_ENV="staging" ; bundle exec rake db:migrate )
DEBUG [da77a5e6]    rake aborted!
DEBUG [da77a5e6]    
DEBUG [da77a5e6]    KeyError: key not found: "staging"
(...)

person Skrypter    schedule 28.03.2016    source источник
comment
Попробуйте запустить деплоймент с --trace, вы должны получить трассировку стека с ошибкой. Это должно направить вас дальше или, пожалуйста, добавьте трассировку стека к вопросу.   -  person BoraMa    schedule 28.03.2016
comment
Ага, извините, этого мало, нужно добавить --trace в rake задачу, которую вызывает capistrano, а не в сам capistrano. Можете ли вы попробовать настройку в этом ответе, чтобы мы получали трассировку стека при вызове rake db:migrate?   -  person BoraMa    schedule 28.03.2016
comment
извините за задержку ... Я решил свою проблему ... :) Когда я пытался развернуть, я не видел, что в файлах yaml отсутствует промежуточная стадия (я не ожидал, что мне также придется добавить ее туда)   -  person Skrypter    schedule 30.03.2016