web-dev-qa-db-ja.com

Drush Upコマンドを実行するとき、サイトをメンテナンスモードにする必要がありますか?

Drushを使用して自分のWebサイトを更新できるかどうかは尋ねていません。Drushがメンテナンスモードにできるかどうかは尋ねていません。

私の質問は...コマンドdrush upを使用してDrupalコアまたはモジュールを更新する場合、私のWebサイトをメンテナンスモードにするか、問題ではない場合) ?

以前は、Webサイトをメンテナンスモードにせずにすべてのモジュールを更新しており、これまでのところ問題はありませんが、ベストプラクティスを探しています。

ところで、私はすでにDrupalコアアップデートをDev環境でテストしており、すべてが正常に動作しています。

4
itsdarrylnorris

ここでのアドバイスの最初のビットは、本番サイトで実行する前に、まず開発サイトまたはステージングサイトで常にdrush upを実行することです。時々、バグや非互換性のために、アップグレードは以前に機能していたサイトを破壊する可能性があります。したがって、アップグレードを実行する前に、常にテストすることをお勧めします。テスト後、drush upを再度実行するのではなく、テストしたファイルをdevからliveに移動することをお勧めします。テスト中に誰かが新しいリリースを公開するかもしれません。

テストサイトでdrush upを実行すると、Drushによって「データベースの更新はありません」と報告されるか、updatedbが実行され、データベースの変更に関するレポートが表示されます。 。

データベースの更新が必要ない場合は、一般に、サイトをメンテナンスモードにせずにコードを更新しても安全です。ただし、サイト内の一部のファイルのみがアップグレードされている場合、Webリクエストが処理される可能性があるという小さなリスクがあります。ファイルのgit pullまたはrsyncにかかる時間はほんのわずかなので、サイトに大量のトラフィックがある場合にのみ問題が発生する可能性があります。これが心配な場合は、サイトをメンテナンスモードにするか、Webサーバーの構成を調整して「進行中」ページを表示することもできます。

データベースの更新が必要な場合は、更新する前にサイトをメンテナンスモードにすることをお勧めします。ファイルを本番システムにコピーした後、drush updatedbを実行してデータベースの更新を実行します。データベースの更新が必要な場合、データベースに新しい列またはテーブルを追加するなどの操作を行うのが一般的です。コアまたはcontribモジュールの新しいコードは、これらのスキーマの変更が行われたと想定し、データベースの更新が完了する前に実行するとクラッシュする可能性があります。 drush updatedbは実行に少し時間がかかる場合があるため、完了する前にWebリクエストを処理する可能性が高くなります。

問題が発生した場合、それは少数のクライアントでのみ観察され、ブラウザでページを更新するだけで修正されることに注意してください。おそらく、updatedbの実行を監視しているので、これらの失敗を自分で目にすることはおそらくないでしょう。ただし、一時的な障害からサイトをクリーンに保つことをお勧めします。そのため、メンテナンスモードがより安全なオプションです。

更新操作をスクリプト化して、毎回スムーズかつ簡単に実行できるようにすることをお勧めします。これを行う2つのサンプルプロジェクトについては、 drush_deploy および pgradepath を参照してください。

9
greg_1_anderson