2

現在、ユーザーがファイルをアップロードできるサイト (browsercms) 内で CMS を実行しているときに問題が発生しました。ただし、デプロイを行うたびに、Capistrano はハード リセットを実行するため、アップロードされたファイルはすべて削除されます。

アプリケーションコードを変更せずに、ハードリセットを防ぎ、プルする方法、またはアップロードされたファイルを別の場所に移動する方法について、誰か提案はありますか?

4

3 に答える 3

2

これは、「アプリケーションコードを変更せずに」という基準を完全には満たしていません。

ただし、同様の問題が発生した後、アップロードしたイメージをディレクトリにシフトした後/public/images/public/system/images/public/systemcapistranoデプロイメントによって「バージョン管理」されないため、イメージは存続します。

(gitリセットの代わりに)問題を引き起こしているのはcapistranoの「バージョン管理」でしょうか?

于 2009-05-12T10:37:06.840 に答える
2

これは正しいアプローチではないかもしれません。

'images' フォルダーを .gitignore に含め、$current_release/images フォルダーを $shared/images にシンボリック リンクする必要があります。

deploy.rb に次のように記述すれば、これはすべてのデプロイメントで自動的に行われます。

task :link_imgs do     
  run "ln -s #{shared_path}/photos #{release_path}/photos" 
end    

after "deploy:update_code", :link_imgs

私はCMSで同じことをしましたが、それは魅力のように機能します

于 2009-07-20T22:31:38.317 に答える
0

cap deploy呼び出しdeploy:updateおよびdeploy:restart

deploy:updateは、バージョン管理、コピーを行います

deploy:restartは真の再起動を行い、通常はconfig/deploy.rbファイルで都合の良いときにオーバーロードします

namespace :deploy do
    desc "Softly restart the server"
    task :restart, :roles => :app, :except => { :no_release => true } do
      my_own.restart_recipe
    end  
end
于 2009-05-12T10:46:01.630 に答える