物理的に異なる場所にいるユーザーのグループ向けの小さなアプリケーションを設計しています。アプリケーションは、クラウド内の中央データベースに接続します (つまり、中央サーバー上 - クラウドだと思いますが、実際にはクラウドではありません)。中央の場所でのバックアップを容易にするために、データベースは中央に保持されます。私はベテランの開発者であり、接続方法、コード、およびその他の要因は実際には問題ではありません。
ただし、ユーザーが適切だと判断したときに、アプリケーションを新しいバージョンにアップグレードできるようにする必要があります。スケジュールに関係なく。新しい更新では、データベース スキーマが変更される可能性があります。そこで、ユーザー A が新しいバージョンをダウンロードし、データベースをアップグレードするという問題に直面します。ユーザー B、C、および D がデータベースにアクセスしようとすると、テーブル/ビューが存在しない可能性があるため、エラーが発生します。
同じサーバー上で異なるデータベースを維持することを考えました。ユーザー A がアップグレードすると、データベースの値が DB_V1 から DB_V2 に「プッシュ」され、ユーザーはそれを使用します。ユーザー B、C、および D は、アップグレードを決定するまで DB_V1 を引き続き使用できます。最終的に、DB_V1 は、すべてのユーザーがそのデータベースからアップグレードしたときに削除できます。
クラウド風のアプリケーションでこれを処理する最善の方法について考えてもらえますか? クライアントが異なるバージョンを使用している可能性がある場合、DB の更新は通常どのように行われ、処理されますか?