テスト環境から本番環境に移行する方法は?


46

ローカル環境から本番環境への移行です。実稼働環境はしばらく実行され、多くの記事が作成されました。

サイトに新しいものを追加するために、カスタムテーマを追加し、ローカルテスト環境にCCK、ビュー、およびその他のモジュールをインストールしました。ローカルテスト環境が完成したので、データベースのコンテンツを破壊せずに、本番環境に移行するにはどうすればよいですか?

回答:


34

これは、ほとんど誰もが異なる答えを持っている自明ではない問題です。本番プッシュへのステージングを処理する標準的なDrupalの方法はありません。Drupalショーを運営するDries Buytaertは、Drupal 8の主要な取り組みの 1つになりました。もちろん、Drupal 7はリリースされたばかりなので、実を結ぶまでにはしばらく時間がかかります。

この問題は、次の2つの問題に分けられます。

  • ステージング構成(変数、コンテンツタイプ、フィールド、ビューなど)
  • ステージングコンテンツ(ノード、ユーザーなど)

前者は、主に機能モジュールによって処理できます。これにより、サイトの構成が取得され、Drupalインストールに追加できるモジュールに変換されます。この方法で、バージョン管理システムに追加でき、心配する必要はありません。コンテンツを移行するときに吹き飛ばされます。

アクティブサイトでは、開発環境への最初の同期を行った後でもコンテンツがプロダクションで変更される可能性があるため、後者は非常に注意が必要です。これにより、設定でできるように、ステージング中のコンテンツの大規模な置換を防ぎます。

さらに、DrupalはコンテンツにUniversally Unique Identifier(UUID)を使用しません。ノードまたはユーザーが追加されるたびに、IDは1ずつ増加します。したがって、開発サイトのノード45が、本番サイトのノード90になる可能性があります。

残念ながら、これに対する優れたソリューションはありません。コンテンツのステージングは​​Drupalの本当の弱点です。私が個人的に行っているのは、実稼働サイトにのみコンテンツを追加することです。クライアントが公開される前にコンテンツがどのように見えるかを確認したい場合は、クライアントのみがアクセスできる本番サイトのクローンを設定します。次に、承認されると、同じ変更が実稼働に直接行われます。

別の選択肢があります:Deployモジュールです。サービスを活用して、コンテンツのステージングを比較的簡単にします。しかし、その有効性を保証することはできず、Drupal 7バージョンもありません。


uuidとuuid_featuresを使用してコンテンツを移行できますが、まだそれほど信頼できません。
ジェレミーフランス語

7

私たちのプロセスで。

  1. prodからdbを取得するシェルスクリプトがあります。
  2. Hudsonを使用して開発/ステージングブランチを再構築し、ライブブランチと開発ブランチを同期しています。

    Gitを使用しているため、実行しているすべてのタスクに独自のブランチがあり、QAに渡されると、リグレッションテスト用のステージングサーバーとしてマスターにマージします。

    マスターの準備ができたらRelease Server、ライブ(構成、ハードウェアなど)のレプリカであるテストリリースを行います。

  3. Featureモジュールを使用して構成を展開します。一部の機能はまだ機能でサポートされていないため、hook_update_Nを使用してupdatedb.phpまたはdrush -vd updb

  4. リリース後、機能revert(drush fra --yes)を実行して、オーバーライドされたすべての機能を元に戻します。
  5. Boost(Varnishに移行)とMemcacheを使用しているため、cache(drush cc all)をクリアする必要があります。

    rsyncを使用して画像/動画などを同期しています...


手順2を詳しく説明してください-Gitを使用して、ファイルシステムの変更を簡単にマージできることを理解していますが、データベースの整合性をどのように確保しますか?また、ここで「構成」を展開するために「機能」を使用する目的は何ですか?ありがとうございました!
ラージパワンガムダル

2

XAMPPサーバーから別のサーバーに移行するには、このサイトの指示に従いました。

開発サーバーで行ったのと同じ構造を運用サーバーで維持してください。また、次の場所にあるDrupal管理ダッシュボードでいくつかのファイルを編集する必要がありました:admin / config / media / file-system

パブリックファイルシステムのパス一時ディレクトリに正しい場所が設定されていることを確認してください。


これは、「マージ」の問題について決して話しません。質問には、プロダクションにはコンテンツデータが無傷でなければならず、ステージングサーバーからの拡張機能をプロダクションにマージする必要があることが明確に記載されています。
ラージパワンガムダル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.