Intereting Posts
Человеческие страницы офлайн для чтения электронных книг? Может ли кто-нибудь определить мой предыдущий пароль sudo, если они имеют доступ к моей машине и моей новой? Ubuntu 12.10 не обнаружено сетевых устройств Как скомпилировать классикудоку? В некоторых файлах vim переходит к последнему местоположению в моем последнем редактировании. В других файлах этого не происходит Suspend не работает с gnome и gdm3 на 17.04 Как избежать использования sudo при работе в / var / www? Вентилятор CPU / GPU не работает должным образом на Intel Macbook 4,1 под Ubuntu 11.10 PHP 5.4. * Уже поставляется с установленным xdebug? Какие приложения для запуска можно безопасно отключить? Два пользователя, которые используют один и тот же компьютер x-systemd.automount и акции CIFS в fstab Может ли Kwin использоваться в Unity? Преобразование сотен jpg в PDF с помощью терминала Индикатор потери батареи Lubuntu 15.04

Развертывание Rails – как вы делаете рейк db: сброс с capistrano?

Я использую Linode с Ubuntu 10.04 и Capistrano, Unicorn и Nginx для развертывания.

Как я могу сделать эквивалент heroku run rake db:reset с помощью этой настройки? Это так же просто, как cap deploy:cold снова, чтобы запустить миграцию?

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

Я написал маленький маленький файл, который вы можете скопировать, чтобы выполнять произвольные грабли с помощью capistrano: http://jessewolgamott.com/blog/2012/09/10/the-one-where-you-run-rake-commands-with-capistrano /

после установки вы можете:

 cap sake:invoke task="db:reset" 

Вы можете добавить следующее в файл deploy.rb

 namespace :custom do task :task do run "cd #{current_path} && bundle exec rake db:reset RAILS_ENV=#{rails_env}" end end 

Затем выполните команду cap custom:task для очистки базы данных.

Для Capistrano 3 без фактического удаления базы данных. Использовать bundle exec cap db:reset

 namespace :db do desc 'Resets DB without create/drop' task :reset do on primary :db do within release_path do with rails_env: fetch(:stage) do execute :rake, 'db:schema:load' execute :rake, 'db:seed' end end end end end 

Если вы используете Capistrano 3, подумайте об использовании коллекции capistrano-rails .

Вы также можете скопировать код непосредственно из файла db.rake из репозитория.

Или, если вы хотите, чтобы полноценное решение запускало все ваши рейк-задачи на удаленном сервере, посмотрите на камень мыса .