これは広すぎるかもしれませんが、私が対処するのに時間がかかっている問題です。エンドユーザーに配布するアプリケーションがあります。derby バックエンド上で実行されています。コードの変更をかなり簡単にプッシュすることができます。それはサーバーに送信され、新しいバージョンがあることを確認し、ダウンロードして古いコードを上書きし、再起動します。
ただし、コードを変更すると、derby データベースのスキーマも変更されます。これを更新する優れた方法はありません。現在、FTP 経由で SQL 更新をプッシュできます。プログラムがインターネットに接続されると、新しい SQL ファイルが検索され、ダウンロードされて実行されます。
残念ながら、クライアントの多くはインターネット アクセスが制限されているため、これらの更新プログラムを断続的に入手しています。変更が十分に大きいために、ローカル DB スキーマが必要なものと同期しなくなることがあります。または、コードの変更は CD で入手できますが、SQL の変更は入手できません (誰かが CD を郵送します)。
私が試みたのは、スキーマの XML 表現を提供できる SOAP サービスを作成することです。これまでに開発するのは巨大な PITA でした。
このようなデータベースを維持するために人々が現在使用している方法は何ですか? これを行うのは私が初めてではないように感じるので、私がしていることよりも良い方法があるかもしれません.
ここでのいくつかのコメントに基づいて、ここに更新があります: 基本的に、DB の厳密なバージョン管理に準拠していないことで、早い段階で自分自身を台無しにしたと思います。多くの人がカスタム インストールを作成しました (意のままにうめきます)。彼らの DB と「公式」コピーの違いを見分けることができるツールが必要です。
ツールを作成しましたが、ある程度は機能しますが、追跡しなければならないことが…たくさん…あります。