2010-12-14 21 views
1

Capistranoに、現在展開しているアプリケーションをマイグレーションで更新させることは可能ですか(最後のデプロイメント以来変更としてコミットされたものです)、デプロイされたアプリケーションをこのコードだけで更新します(新しいフルデプロイメントを実行せずに)、移行を実行するだけですか?Capistranoでマイグレーションを実行するにはどうすればいいですか

+0

通常の配備を実行するだけではどうですか?とにかくスキーマを変更した後、常にアプリケーションを再起動する必要があります。 –

+0

私はこれを行う必要がある理由の正確な説明のためにあなたの端末で 'cap -e deploy:upload'を実行します...問題は、コマンドがサブバージョンから引っ張って動作しないことです(私の人生では、理解してください) – concept47

+0

私は展開したものを正確に知りたいので、 'cap deploy:upload'を使ったことは一度もありません。私はあなたがなぜ展開を制限することができなかったのか見ていません。しかし、upload deploy:FILES = migrate/foo.rbを移行してください。 –

答えて

0

展開は展開です。あなたが(!?)

私見を展開せずに展開することを求めている

は、あなたの問題はカピストラーノよりもSCM(SVN、Gitは、など...)に複数の関連です。 トランク/マスターにコミットされているすべてのコードではなく、コードの一部(1回の移行)を展開したいと思うかもしれません。あなたがしなければならないことは、配備のためにブランチ/タグ付けし、そのブランチ/タグから配備することです。私はSVNを使用している場合

例えば、私はいつも私のdeploy.rbにこれらの行を追加します。

set(:tag) { Capistrano::CLI.ui.ask("Tag to deploy: ") } 
set(:repository) { "#{repository_root}/tags/#{tag}" } 

このよう私は特定のタグを展開することができますし、私のSVNは明らかに私の生産コードを定義しています。あなたのケースでは

、手順は次のようになります。

  • ブランチあなたの最後の生産改正
  • は、このブランチの変更(ご希望の移行)
  • タグそれ(例えば、PROD-with_my_desired_migrationを適用します)
  • キャップ展開を含め、そのタグを展開:

を移行するすべてのツールは、その目的と我々が持っていますそれぞれの力を活用しなければなりません。

関連する問題