コンテンツを上書きせずにライブdrupalサーバーを更新するにはどうすればよいですか?


9

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

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


ライブサイトをロックダウンする必要があると思います。つまり、「ユーザーは更新を適用できません」、ライブサイトを開発サーバーに同期し、変更を適用して再度同期する必要があります。開発サーバー(更新コードなどを追加する場合のみ)、マスターサーバー-開発サーバーはこれにデプロイされ(ユーザーがコンテンツを追加する)、ライブサーバー(マスターはこのサーバーにデプロイされます)。
Cyclonecode 2012年

回答:


3

Thomas Zahreddinはその通りです。しかし、何が変わったのか(「2週間ほどかかった」など)によっては、さらに考慮すべきことがいくつかあります。

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

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


1

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

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

1

DrupalのWebサイトを更新するときに、職場で同じ手順を実行します。最大の問題は、Drupalがデータベース内のコンテンツとロジックを別々に保つのに本当にうまく機能しないことです。

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

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

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

すべてをコードに留めることができる場合(もちろん、これを常に実行できるとは限りません)、GitSubVersionMercuryなどのSCMを使用してソースを更新し、最悪の場合、シナリオを更新が予定どおりに機能しない場合は、以前のバージョンのソース。

そしてもちろん、前の回答で説明したように、バックアップ、バックアップ、バックアップ、バックアップ...


0

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

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


0

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


Drupal Answersへようこそ!上記はあなたのためにうまくいったと確信していますが、それは非常に堅牢に聞こえません。何かを入力するとタイプミスが発生しやすくなります。次回のライブで新しいものが入力されると、上書きされます(もう一度入力するのを忘れない限り)。
フリーラジカル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.