2016-03-06 32 views
1

我試圖使用Capistrano 3部署我的Rails 4應用程序。我在運行db:migrations時收到了錯誤消息(我一直sl,,很抱歉)。有沒有辦法讓Capistrano使用db:schema:load來部署應用程序(至少是第一次)?Rails:如何設置db:schema:使用Capistrano進行初始部署時的加載

deploy.rb摘錄:

namespace :deploy do 

    %w[start stop restart].each do |command| 
    desc 'Manage Unicorn' 
    task command do 
     on roles(:app), in: :sequence, wait: 1 do 
     execute "/etc/init.d/unicorn_#{fetch(:application)} #{command}" 
     end  
    end 
    end 

我不知道如何重寫Capistrano 3的默認行爲。有人能告訴我如何將其添加到我的腳本?

回答

1

對於第一次部署,我通常通過登錄到服務器,cd進入發佈目錄(此時將具有已部署的代碼),然後手動運行RAILS_ENV=yourenv bundle exec rake db:setup來破解它。

+1

除了這是一個可怕的解決方法。我們永遠不需要直接SSH連接到服務器 - 如果我們可以在服務器上運行命令,那麼Capistrano有什麼意義呢? – kenn

+1

自動化。 Capistrano的目的是讓您不必一遍又一遍地運行同樣長的一組命令。 –

相關問題