Каталог развертывания Capistrano для миграции - PullRequest
1 голос
/ 18 июля 2010

У меня есть приложение rails, которого нет в корневом каталоге хранилища.Когда он развернут, некоторые другие статические файлы развернуты вместе с ним в родительском каталоге.Структура выглядит примерно так:

root
-- otherstuff
-- railsapp

Когда я выполняю развертывание с помощью cap deploy: migrations, выполняемая команда Capistrano выглядит следующим образом, что, конечно, не работает:

cd /u/apps/minicart/releases/20100717215044; rake RAILS_ENV=staging  db:migrate

Как мне изменить это так, чтобы оно было:

cd /u/apps/minicart/releases/20100717215044/railsapp; rake RAILS_ENV=staging  db:migrate

Я сделал это, добавив задачу, которая выполняет эту команду после deploy: finalize_update, но я бы предпочел использовать встроенныйметод, плюс моя взломанная версия выполняется при каждом развертывании.

Любой совет будет принят.

Тим

1 Ответ

2 голосов
/ 19 июля 2010

Это оказалось очень просто.

Я добавил пространство имен deploy в мой файл deploy.rb и затем переопределил метод migrate.Теперь мой метод работает на cap deploy: migrations.

namespace :deploy do
  desc "Migrating the database"
  task :migrate, :roles => :app do
    run <<-CMD
      cd  #{release_path}/minicart; RAILS_ENV=#{stage} rake db:migrate
    CMD
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...