web-dev-qa-db-ja.com

コンテンツを上書きせずにどのようにLive drupalサーバーを更新しますか?

私はライブのサイトを持っていて、人々は積極的にコンテンツを入れています。ただし、開発環境に変更を加える必要があり、そのために数週間かかりました。変更により、新しいモジュールをインストールし、古いモジュールを削除する必要がありました。もちろん、データベースの内容と構造が変更されました。

私の質問は、過去2週間に追加された新しいユーザーの新しいコンテンツを上書きせずに、このサイトをライブ環境にアップロードしてデータベースを更新するにはどうすればよいですか?

9
blue928

Thomas Zahreddinは正しいです。しかし、何が変わったのか(「2週間ほどかかってしまった...」)によっては、さらに考慮すべき点があります。

  1. コンテンツタイプを追加/変更しましたか?それらをエクスポートしてインポートしてみてください。内容を失っていないことを確認してください。
  2. ビューを追加/変更しましたか?それらを安全にエクスポートおよびインポートできます。
  3. モジュールの更新。現在のデータでそれらをテストします。ユーザーデータが更新を壊す可能性は常にあります。
  4. モジュール構成の変更。それが多すぎない場合は、メモを取ってやり直してください。それ以外の場合は、 機能 および strong arm モジュールを試してください。別のオプションは、正確な変数名を把握し、その値をsettings.phpに書き込むことです。
  5. 開発システムに追加のコンテンツがあります。ここで物事は本当に毛むくじゃらになります。 デプロイメントモジュール または ノードエクスポート を試すことができます。しかし、それらは特効薬ではありません。

些細なケースがない場合は、事前に手順をテストすることをお勧めします。そしてもちろん、ライブシステムを開始する前に、ファイルとデータのバックアップを取ってください。 ( バックアップと移行 はここで便利です。)

3
BetaRide

変更したいものを確認する必要があります。

  • contenttypeまたはbundle->新しいcontenttype | bundleを挿入するか、ノードをエクスポートおよびインポートするか、このレコードのデータベースでcontenttype | bundleを変更します
  • 単一フィールドの名前とcontenttypesの出現|バンドル->例:管理インターフェースまたは
  • フィールドの値->最も難しいタスク:データベースのSQLを介して(おそらく)、または migrate のようなモジュールを使用してこれを実行できます
1

Drupal Webサイトを更新するときに、職場で処理するのと同じ手順があります。最大の問題は、Drupalがコンテンツとロジックを維持するのに本当に優れた仕事をしていないことです。そのデータベースで離れています。

Thomas ZagreddinとBetaRideによる回答は、移行を正常に完了するための最良の機会を与えるのに十分です。この問題については、聖杯はありません。

開発のヒントをお伝えしたいと思います。これにより、私たちのWebサイトを最新の状態に保つための多くのトラブルを回避できます。コード(モジュール/テーマ)でロジックをできるだけ維持するようにしてください。同様に、ビューをできるだけ作成しないようにしてください。時々あなたはしなければならないでしょうが、それは別のデータベース更新を必要とするでしょう...

ソース管理を使用してください!

コードまですべてを維持できる場合(もちろん、これを常に実行できるわけではありません)、単純に GitSubversion などのSCMを使用できます。 Mercury ソースを更新し、最悪の場合、更新が予定どおりに機能しない場合は、以前のバージョンのソースに戻します。

そしてもちろん、前の回答で述べたように:backup、backup、backup、backup ...

1
Ambidex

使用できるほとんどの変更について 機能モジュール このモジュールは、ローカル環境で行った変更のみを変更できます。

それ以外の場合は、この美しいモジュールを使用できます バックアップと移行 最初にこのモジュールをオンラインでインストールしてから、既存のコンテンツまたはデータベース全体のバックアップを作成してから、ローカルに展開します。次に、ローカルに必要な変更を加え、ローカルのバックアップをとり、オンラインに展開します。

0
Rishi

私は同じ問題を抱えていました。それを解決するために、私がライブで持っていたのは開発者ではなかった唯一のコンテンツが新しいユーザーの詳細であることに注意しました。私は単にadminのPeopleタブに行き、人々の詳細をdevにコピーしました。開発者では、自動化せずに入力しただけです。したがって、次回devからアップロードするとき、人々の詳細は当然正しくなり、上書きされません。

0