2011-03-08 4 views
5

私はCapistranoを使用してRailsアプリケーションを導入しています。私はデータベースが変更された状況を考えているので、コードが更新される前に移行を実行する必要があるため、単純にcap deployにすることはできません。私はcap deploy:migrationsがあることを認識していますが、それは私が望むよりも少しだけ自動です。Capistranoは導入しますが手動で移行を実行します

  1. 新しいコードをリリースディレクトリにプッシュしますが、シンボリックリンクを更新したり、アプリケーションを再起動したりしないでください。
  2. sshをサーバーにインストールするには、rake:db_abort_if_pending_migrationsを実行して、実行する移行が唯一保留中であることを確認してから、rake db:migrateを手動で実行します。
  3. 展開を完了し、シンボリックリンクを更新してアプリケーションを再起動します。

組み込みのCapistranoタスクでこれを行う簡単な方法はありますか、それを達成するための独自の展開手順を記述する必要はありますか?

ライブデータベースで移行を実行できるケース(列の追加など)について考えています。より破壊的な変更を行うには、展開中にメンテナンスページを使用してサイトを停止する必要があることがわかりました。

答えて

5

試してみてください。

  1. cap deploy:update_code

  2. あなたはより多くの情報を参照してくださいcap -e deploy:update_code deploy:symlink deploy:restart deploy:shell手動またはcap shell

  3. cap deploy:symlink deploy:restart

を経由してサーバにlogingを説明するものですか。

私はこれがあなたに役立つことを願っています。

+0

これは、ありがとう! Capistranoのタスクの流れのどこにでもドキュメンテーションがありますか(つまり、どのようなサブタスクが実際にどのような順序で実行されるのですか? – jrdioko

関連する問題