Каталог изменения развертывания Capistrano для миграций

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

root
-- otherstuff
-- railsapp

Когда я делаю развертывание с ограничением 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, но я предпочел бы использовать созданный в методе, плюс моя взломанная версия выполняется с каждым развертыванием.

Любой совет ценился бы.

Tim

1
задан Tim Stephenson 17 July 2010 в 22:18
поделиться

1 ответ

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

Я добавил пространство имен deploy в свой файл deploy.rb, а затем переопределил метод migrate. Теперь мой метод работает на шапке 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
2
ответ дан 2 September 2019 в 22:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: