私はここ数日間、この問題に頭を悩ませようとしてきました。私が思いつく解決策は少し複雑です。通常、それは私が間違った方向に進んでいるという危険信号です。
とにかく、私は、間にテストサーバーを置いて、DevからProdに移行するための、堅実で手を離すワークフローを考え出そうとしています。
現在、私が取り組んでいるプロジェクトは開始されていないため、製品サーバーはありません。
すべての開発者はローカルで作業します。開発者が行った変更はリポジトリにコミットされ、開発環境に統合されます。現在、開発サーバーとテスト サーバーがあります。
Dev および Test Server データベースは非常に慎重に手作業で処理されており、起動するとすぐに問題が発生します。
これが私たちが立ち上げることを提案する方法です
テスト サーバーのコピーを作成します。そのコピーが製品になります。データの一貫性が保たれるように、Prod と Test の間にマスター/スレーブ関係を作成します。サイトを起動します。
毎晩 Test からデータを取得し、誰でもデータベースを最新のデータで更新できるようにします。
開発者はスキーマに変更を加え、それをテストしてレポに追加し、開発に移行します。
現在のデータと現在のスキーマは dev でマージされ、スキーマが何も壊していないことを確認します。新しいバージョンをリリースする準備が整うとすぐに、テストを行います。
すべての変更がテストされ、起動の準備が整ったら、Test のコピー (Test2) を作成し、Prod をフリーズします。Test が Prod になり、Prod のマスター/スレーブ関係が Test2 にフックされ、Test2 が Test になります。
笑わないでください、これが私が思いつく最高のものです。
これがうまくいかない理由、改善するために私ができること、またはプロセスを支援するツールについてのフィードバックは素晴らしいでしょう.