5

私はCapistranoを使用してRailsアプリケーションをデプロイしています。cap deployデータベースが変更された状況を考えているので、コードが更新される前に移行を実行する必要があるという理由だけではわかりません。あることに気づきましたがcap deploy:migrations、それは私が望むよりも少し自動化されています。そうしたいです:

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

組み込みのCapistranoタスクを使用してこれを行う簡単な方法はありますか、またはこれを達成するために独自の展開手順を作成する必要がありますか?

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

4

1 に答える 1

5

試す:

  1. cap deploy:update_code

  2. 手動または経由でサーバーにログインすることで説明したことを実行しますcap shell

  3. cap deploy:symlink deploy:restart

詳細については、を参照cap -e deploy:update_code deploy:symlink deploy:restart deploy:shellしてください。

これがあなたのお役に立てば幸いです。

于 2011-03-09T18:51:42.963 に答える