データベーススキーマと互換性があるかどうか、太いクライアントテストはどのようにテストしますか?
-
22-09-2019 - |
質問
太いクライアントと薄クライアントの両方のコンポーネントを備えたアプリを開発します。また、スキーマの変更により独自のバージョン番号が表示され、スクリプトの変更が適用されるようにデータベースも適用できます。ただし、データベースの変更は、厚いクライアントの変更で常にステップで発生するとは限りません。はい、今日のデータベースの変更は列を追加し、厚クライアントにAを必要とする場合がありますが、明日のデータベースの変更は、外部の変更を必要としないストアドプロシージャのエラーを修正する場合があります。太いクライアントをコーディングして、後方に互換性があり、一部が互換性があり、ない場合がない場合に特定のデータベースバージョンと互換性があるかどうかをテストするにはどうすればよいですか?
誰でも気にしても、私たちのものはSQL Serverと統合されている.NETアプリですが、これはプラットフォームの質問というよりもバージョンの質問のようです。プラットフォーム固有のソリューションがない限り...
解決
テーブルを作成できます。 2つの文字列列を備えたメタデータは、現在のバージョンのスキーマを備えたエントリ(またはより多くのエントリ)を置きます。私はあなたが今似たようなことをしていると思います。
バージョンを2つの数字(メジャー/マイナースキームなど)に分割します。スキーマを非バックワードの互換性のある方法で変更すると、メジャーバージョンを増やします。後方互換の変更後、マイナーバージョンを更新するだけです。
メジャーは、アプリが現在のスキーマと互換性があるかどうかを確認するために使用され、メジャー+マイナーは、スキーマを更新できる/必要があるかどうかを確認するために使用されます。
これは、ほとんどのアプリケーションで使用されるソリューションだと思います。
他のヒント
メジャー/マイナーバージョン番号スキームを採用できますか?
主要な数字の変更は、クライアントが更新する必要があることを意味し、マイナー数の変更はそうではありません。
これらのいずれかで、バージョン番号は常に増加しています。
データベースが必要な最小クライアントバージョンを知っている場合、クライアントが必要な最小データベースバージョンを知っている場合、アップグレードが必要なもの(もしあれば)を決定するのは簡単なチェックです。コード、それがあなたの決定です...