Capistrano Migrations Deploy - PullRequest
       2

Capistrano Migrations Deploy

2 голосов
/ 12 июля 2011

У меня вопрос по поводу Ruby on Rails и Capistrano. Первое, что я делаю, это разворачиваю приложение Rails, используя:

cap deploy:update

Когда у меня есть миграция, я пытаюсь запустить команду Capistrano:

cap deploy:migrations

Я получаю ошибку:

Could not find rake-0.9.2 in any of the sources

Мне нужно SSH в текущую папку сервера и вручную запустить

rake RAILS_ENV=production db:migrate

Что, очевидно, является огромной болью для запуска каждого развертывания с миграцией.

Что я делаю не так? Спасибо за помощь.

Ответы [ 4 ]

1 голос
/ 12 июля 2011

Возможно, вам понадобится раскомментировать и настроить следующие строки в вашем config/deploy.rb:

# default_environment['PATH']='<your paths>:/usr/local/bin:/usr/bin:/bin'
# default_environment['GEM_PATH']='<your paths>:/usr/lib/ruby/gems/1.8'

Кроме того, если вы используете RVM, вам может потребоваться добавить несколько строк:

# adjust if you are using RVM, remove if you are not
$:.unshift(File.expand_path('./lib', ENV['rvm_path']))
require "rvm/capistrano"
set :rvm_ruby_string, '1.9.2'
set :rvm_type, :user
0 голосов
/ 01 марта 2013

Чтобы включить задачу Bundler Cap, просто добавьте ее в файл deploy.rb :

require "bundler/capistrano"

Запуск cap развертывания теперь автоматически запускает установку пакета на удаленном сервере с удобными для развертывания параметрами, и rake будет доступен для следующих этапов развертывания.

Список опций, которые можно изменить, доступен в справке для задачи cap. Чтобы увидеть это, запустите cap -e bundle: install.

0 голосов
/ 17 июля 2011

у вас есть более новая версия rake gem на локальном компьютере, но у удаленного сервера есть более старый, который корректно работает с версией Rails, которую вы используете.

Можете ли вы проверить это с помощью "списка драгоценных камней | grep rake" локально и удаленно. вы можете указать rake версию gem в вашем Gemfile и повторно развернуть приложение

#Gemfile
gem 'rake',  '0.8.7' # or '0.9.2'
0 голосов
/ 12 июля 2011

это похоже на развертывание: задача миграции не дает правильной среды bash. Вы видите полную команду, которая запускается на сервере? Это использует sudo? Это использует bundler? Получите всю команду и попробуйте запустить , что из сеанса SSH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...