2012-02-04 36 views
0

我正在將網站上傳到服務器。當我使用cap deploy:cold並且該網站正常工作時,我可以成功上傳該網站。然而,我提前計劃並想要更新網站上的代碼/在數據庫上運行遷移的方式,而不會丟失數據庫中的所有數據,這似乎是在我使用cap deploy:cold時發生的。爲什麼帽部署會導致問題,但帽部署:寒冷工作正常嗎?

deploy.rb文件包含:

require "bundler/capistrano" 
#require "csv" 

set :application, "my domain" 
set :user, "my username" 

set :repository, "." 
set :deploy_via, :copy 
set :deploy_to, "/home/users/#{user}/html/#{application}" 
set :ssh_options, { :user => user, :port => 50022 } 
set :use_sudo, false 

set :scm, :none 

role :web, application 
role :app, application 
role :db, application, :primary => true 

namespace :deploy do 
task :start do ; end 
task :stop do ; end 
task :restart, :roles => :app, :except => { :no_release => true } do 
    run "#{try_sudo} touch 
    #{File.join(current_path,'tmp','restart.txt')}" 
end 
end 

這個代碼是什麼,我被告知我們的託管服務提供商使用。正如我所提到的,cap deploy:cold成功運行,網站按預期工作。當我運行cap deploy時出現錯誤 - We're sorry, but something went wrong. We've been notified about this issue and we'll take a look at it shortly.我注意到由cap deploy:cold調用的進程是deploy:update,deploy:migratedeploy:start。爲了儘量縮小這個問題,我嘗試着自己運行deploy:update,它在沒有報告錯誤的情況下工作,但是當我加載站點時產生相同的錯誤信息。運行cap deploy:start不能解決問題。

是否有人能夠闡明可能發生的事情?您是否也可以確認我應該如何繼續使用運行數據庫遷移的網站代碼&,而不會丟失數據庫中當前的數據?
`

+0

繼我原來的職位,如果我運行:cap部署:更新,然後cap部署:遷移網站開始執行...你知道爲什麼cap部署命令不能自己工作嗎?另外,根據我的帖子,我如何更新我的網站(代碼或數據庫遷移),而不會丟失數據庫中的數據? – Texas 2012-02-04 08:41:20

回答

1

如果我正在閱讀此權限,您需要一條命令來更新您的代碼並執行所有待處理的遷移。幸運的是,cap deploy:migrations就是這麼做的。 (不要與cap deploy:migrate相混淆僅遷移

如果要在只使用cap deploy運行遷移,你可以添加:

before 'deploy:symlink', 'deploy:migrate' #use hook 'deploy:create_symlink' if using 2.10.0 

爲了你的食譜

+0

感謝您的回答和評論abou把代碼添加到收件人正是讓我感到困惑的...... – Texas 2012-02-05 13:20:56

相關問題