1

ステージングおよび実稼働サーバーへの展開用に capistrano をセットアップしました。最後に気になるのは、ユーザーがアップロードしたコンテンツの処理方法です。現在、アップロード フォルダーとそのコンテンツは git リポジトリでバージョン管理されています。可能であれば、悪い習慣ではなく、デプロイ スクリプトを使用して通常のデプロイ作業を行うだけでなく、スクリプトにタスクを追加して、prod サーバーに新しくアップロードされたコンテンツをリポジトリにプッシュすることもできます。

これは賢明な/可能な動きですか?皆さんは普段、この種のことをどのように処理していますか?

4

1 に答える 1

0

コンテンツをコードベースから分離する必要があります。

1 つの戦略は、デプロイメント エンドポイント (サーバー上で、アプリケーションが使用されるにつれて時間をかけてビルドされる場所) にコンテンツを格納し、デプロイメント中にそのコンテンツへの capistrano シンボリック リンクを保持することです。

「{rails_root}/public」に「uploads」というフォルダーがあるとします。デプロイ レシピに次のようなものを追加します。

# Create a symlink to our 'uploads' folder
namespace :deploy do
  task :symlink_uploads, :roles => :app do
    run "ln -s #{deploy_to}/shared/uploads #{release_path}/public/uploads"
  end
end
after "deploy:update_code", "deploy:symlink_uploads"
于 2013-01-28T01:17:36.710 に答える