開発とテストのための新しいステージングプロセスを作成する必要があります。
常に、活発に開発およびテストされているgitブランチは約4つだけです。各gitブランチ内には、実行する必要のあるデータベースエボリューションスクリプト(ストレートSQL)と、より重い処理のためのバックエンドからのエボリューションスクリプトがあります(これらは、データベースを実行する管理者資格情報を使用してアプリ内で呼び出す必要があるHTTPルートです)移行や、前述のプレーンなSQL進化スクリプトでスクリプトを作成することが困難または不可能であるその他の変更)。
私たちのライブDBは、適度なサイズの4.2 GBです。セットアップの準備ができて、使い捨ての真新しいDell PowerEdgeサーバーがあります。
次の質問についてのアドバイスと、経験豊富なDevOpsがこれにどのように取り組むかを知りたいです。
ステージングサーバーでいくつかの異なるブランチを実行するにはどうすればよいですか?これらのブランチは、QAに合格し、マスターにマージされて解放されると、頻繁にポップアップして消えます。
各ブランチに常に適切なDBがあることを確認するために、DB進化システムをどのようにセットアップしますか?各ブランチは、マージされるまで相互に互換性があるとは限らないさまざまな方法でDBに変更を加える場合があります。
これらのブランチを最新の状態に保つにはどうすればよいですか?各ブランチでコミットを自動プルする方法はありますか?
これをすべて設定する方法について少し迷っていますので、これ以上の入力は大好きです。現在のワークフローは関係者全員にとって困難です。開発者は完全に分離されたアプリのローカルコピーをローカルで実行しており、QAは3〜4台のラップトップをローテーションしてステージング「サーバー」として機能させます