ステージングサイトで、DB内の更新の同期をどのように管理しますか?


11

開発者が更新をライブサーバーにリリースする前にステージングサイトを通じてテストする必要があることは広く受け入れられていますが、開発更新でWordpress DBの変更が必要になると、ライブサイトのユーザーもDBを更新するため、状況が複雑になります。

私が想像できる唯一の(混乱した)フローは次のとおりです。

  1. ローカルサーバー(WAMP、XAMPなど)でテストする
  2. 展開の準備ができたら、ライブサイトをメンテナンスモードにします。
  3. ライブサイトのバックアップ(Duplicator、sqldumpなど)
  4. ロックされたライブサイトのクローンをステージングサイトに作成する
  5. ローカル環境からステージングサイトに変更をアップロードする
  6. ステージングサイトをテストする
  7. ステージングサイトを公開します。
  8. メンテナンスモードを削除する

上記のフローの欠点:

  • 開発者がステージングサイトで更新を慎重にテストしている間、ダウンタイムはユーザーにとって予想よりも長くなる可能性があります。
  • 変更の手動管理が必要な場合があります。たとえば、siteorigin pagebuilderレイアウトはデータベースに保存されるため、レイアウトを変更したら、ステージングサイトに手動でインポートする必要があります。この場合、ステージングサイトにページをドロップしてインポートするだけで十分です。機能している場合は、ライブサイトにインポートします。

これを達成するためのより良い、より自動化された方法はあるのでしょうか。

どう思いますか?

編集、要求に応じて、過去にいくつかの解決策が提案されましたが、決定的な解決策を提供するものはありません:


@ Dan9、ライブサイトへのアクセスを最小限に抑えるほうが安全だと思いました。ライブサイトでレイアウトを編集するのは一般的な習慣ですか?多分私は心配しすぎています!
リカルド

まあ、あなたはそれらを作成、更新、削除、復元することができます。何を心配しているの?
MinhTri 2016

それで、ステージングサイトでテストせずにレイアウトをアップロードするのが普通ですか?あなたの典型的なワークフローは何ですか(ローカル/ステージング/ライブ)?
リカルド


信頼できますか?このツールを使用していますか?
リカルド

回答:


2

特にWordPressに対応する新しいホスティングプロバイダーには、通常、この痛みを緩和するためのツールが用意されています。私は、クライアントをPantheonに配置しました。これは、Git対応のこのきちんとしたワークフローを備えており、コードは(開発からステージング、本番に)上方向にのみ移動し、DBスタッフは(コードからその逆に)下方向にのみ移動します。本番環境からステージングへのデータベースのコピーは、インターフェースを使用してワンクリックで実行できます。このワークフローが尊重されれば、本番データベースをめちゃくちゃにする問題がほとんどなくなり、本番DBデータの新しいクローンでの変更を、開発段階で常にテストできます。

Pantheonを使用する必要はありません。独自のツール(Git + WP Migrate DBのようなDBクローニングプラグイン)を使用して、プロセスに同様のアプローチを採用できます。私はこの方法が私にとってうまくいくと思います。

質問:ステージングのテスト中に運用サイトをメンテナンスモードにするのはなぜですか?ほとんどの場合、その必要はありません。私が考えることができる唯一のケースは、追加のユーザーデータに非常に敏感なシステムがあり、ブートするという致命的なバグがあるということですが、それはおそらく、必要となる別のより大きな問題を示しているでしょう製品のアーキテクチャ全体を再考します。


私のプロバイダーでは、ワンクリックのステージングサイトを作成し、テーブルの詳細な選択を書き換えてプッシュトゥライブを実行できます。 (たとえば、sitebuilderページレイアウトはDBに保存されます)。このフェーズの間、ユーザーは更新を停止する必要があります。あなたがこのステップを達成する方法についてより良いアイデアを持っているなら、私はあなたと共有したいです!
リカルド2016

ところで、少し変更が加えられるたびに、dev / staging / liveフローを通過しますか?たとえば、エディター内のページのレイアウトを少し変更したり、メニューを変更したりする
Riccardo

うん-ファイルは毎回dev-> staging-> prodを通過します(おそらく、ステージングまたはdevを無効にすることができます-覚えていません)。開発は開発チーム向けであり、ステージングは​​本番環境に移行する前のQAまたはデザイナー/クライアントの承認のためです。
モントリオールの

1

プロセス全体(ファイルとデータベース)にGITバージョン管理をもたらすVersionPressを見てください

彼らのサイトに記載されているように:

VersionPressは無痛のステージングを提供します。つまり、変更に対して安全なテスト環境を簡単に作成し、準備ができたときにのみマージし直すことができます。ここでのキーワードはMergeです。VersionPressは、ライブサイトに新しいコンテンツが存在する状況をシームレスに処理します。


1
このツールの信頼性を確認するにはどうすればよいですか?
リカルド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.