web-dev-qa-db-ja.com

drush upコマンドはマルチサイトで機能しますか?

D7マルチサイトインストールですべてのサイトを更新する必要があります。私は通常、単一のインストールを扱い、drush upを使用してコア、モジュール、およびdbを更新します。マルチサイトインストールの経験はありません。

マルチサイト用にdrushをインストールする方法について この記事 を読みましたが、実行する前にdrush -l mysite1.com upが実際に機能するかどうか知りたいのですが。

この問題について以前に経験がある場合は、親切に助けてください。ありがとうございました。

5
ryy

はい!しかし、多分違う!注意してください!

特定のDrupalサイト内のコードでpm-updatecodeを実行する場合、データベーススキーマをコード内の現在のスキーマに一致させるために、後でupdatedbを実行する必要があります。したがって、 drush -l mysite1.comは実際には正しく実行されますpm-updatecodeの後にmysite1のupdatedbが続いている場合、sites/all/modulesに更新されているモジュールがある場合、またはDrupalコアが更新されている場合は、次の操作も必要です。マルチサイトインストールの他のすべてのサイトでupdatedbを実行します。この手順をスキップすると、mysite1は機能しますが、マルチサイトインストールの他のサイトが壊れる可能性があります。

マルチサイトインストールを扱う場合、最も安全なポリシーは次のとおりです。

  1. ライブを開発にコピー
  2. 開発上のマルチサイトのすべてのサイトでpm-updatecodeを実行します
  3. Devのマルチサイトのすべてのサイトでupdatedbを実行します
  4. テスト!テスト!テスト!
  5. 本番環境でマルチサイトのすべてのサイトをオフラインにします
  6. 更新されたコードを開発上のすべてのマルチサイトから本番環境にプッシュします
  7. 本番環境のマルチサイトのすべてのサイトでupdatedbを実行します
  8. もう一度テストしてください!
  9. すべてのサイトをオンラインに戻す

更新されたすべてのモジュールがsites/mysite1/modulesにあり、Drupalコアが更新されていないことがわかっている場合は、一度にすべてのサイトを実行することを回避できます。ただし、一般的には、マルチサイトインストールを回避して、複数のデータベースでの共有コードの相互依存を心配する必要がないようにします。

6
greg_1_anderson

はい! drush @aliasは、これまでに試したほとんどすべての方法で機能します。エイリアスが適切に設定されていることを確認してください。この機能は、箱に書かれているとおりに機能します。これまでのところ、rsyncとsql-syncを複数のエイリアスで問題なく使用する場合がほとんどです。

マンページに記載されているように、すべてのエイリアスを.drushrcフォルダーに設定しました。 -そのページを下にスクロールしてください。良いものはボタンにあります。

これがお役に立てば幸いです。

1
stefgosselin