私は小さなチーム (4 人の開発者) で、現在 500 人のユーザーを持つサイトを作成しました。
私たちの開発サイクルは次のようになります。
- ローカルホストで変更 (プラグインのインストールまたはコードのカスタマイズ) を行います。
- 開発環境にプッシュします。ストレステストを行うことができ、テストユーザーが数人います。
- 私たちはそれを評価します。
- 本番環境にプッシュします。
新しいコードのデプロイは git pull と同じくらい簡単ですが、本当の問題はデータベースです。
ほとんどすべてのプラグインで、管理パネルで何かをクリックする必要があります。さらに、インストール時に新しいテーブルを作成したり、既存のテーブルを更新したりするものもあります。たとえば、すべてのユーザーにいくつかの新しいユーザー メタデータを追加します。
私はいくつかの解決策について考えました:
- すべての環境にプラグインを手動でインストールする:
プラグインを手動でインストールできますが、エラーが発生しやすくなります。コードは同じでも、いくつかの単純な構成ミスのためにサイトの動作が異なるという状況がいくつかありました。
データベース全体のエクスポート:
- 本番データベースをエクスポートし、dev にインポートします。
- dev にプラグインをインストールします。
- 開発を本番環境に移行します。
それには本当の問題があります - それはアトミックではありません。開発者にプラグインをインストールしているときにユーザーが投稿を作成した場合、それはなくなります。
- データベースの変更からのスクリプトの作成:
MySQLバイナリログを介してプラグインをインストールしているときに、ワードプレスが行ったことを記録できました。
問題は、1 つのデータベース クエリですべてのユーザーを取得し、ID を使用して別のメタデータを追加できることです。これは、バイナリログが一連の ID を使用してクエリを記録することを意味します。プロセス中に新しいユーザーが登録された場合、それはなくなります。
- Selenium IDE を使用して設定変更を記録する:
その後、テスト スイートを Python にエクスポートし、変更したホスト アドレスで再生できます。それは機能する可能性がありますが、回避策のように思えますが、解決策です。
- すべてのプラグインを変更して、php ファイルで構成するようにします。
これは正当に思えますが、かなりの作業が必要になる可能性があります。
データベースを変更してワードプレスの展開を自動化する方法を教えてください。
SOにはいくつかの同様の質問があります:
しかし、これらはかなり基本的な質問であり、私の問題を解決しません。