1

すでにデプロイされているギャラリースタイルのアプリがあります。私のローカルバージョンには、ローカルテストにのみ使用する写真がたくさんあり、オンラインにある実際の写真を上書きしたくないのです。

コードを追跡し、写真を無視するgitリポジトリもあります。

cap deploy:migrationsと入力すると、gitリポジトリが使用されますか?つまり、Capistranoは私のオンライン写真をローカルの写真で上書きしますか、それともgitがそれらを無視するため、それらを無視しますか?

4

2 に答える 2

11

写真を capistrano の共有フォルダに入れてシンボリックリンクするだけです。それを自動化するには、次のようなカピストラーノ レシピを記述します。

namespace :deploy do

  after "deploy:setup", "deploy:pictures:setup"
  after "deploy:symlink", "deploy:pictures:symlink"

  namespace :pictures do
    desc "Create the pictures dir in shared path."
    task :setup do
      run "cd #{shared_path}; mkdir pictures"
    end

    desc "Link pictures from shared to common."
    task :symlink do
      run "cd #{current_path}/public; rm -rf pictures; ln -s #{shared_path}/pictures ."
    end

  end
end

このレシピは、「cap deploy:setup」の capistranos 共有フォルダーに写真フォルダーを作成し、各「cap deploy」でシンボリック リンクを作成します。

したがって、既にサーバー上に写真フォルダーを作成していくつかの写真を追加している場合は、コマンドを実行する前にそれを移行できます。

cd yourapp
mv current/public/pictures shared
ln -s shared/pictures current/public/pictures

複数のマシンで共有フォルダーの内容を同期するために別のレシピを使用します。GitHubから入手できます。

于 2009-08-17T11:15:58.273 に答える
1

デプロイするとき、capistrano は選択したバージョン管理システムから新しいコピーをチェックアウトします。ローカル ファイルは気にしません。

于 2009-08-17T11:30:55.827 に答える