私は現在、ゲーム用のプラグインを構築しており、SQLite を使用しています (ただし、MySQL で動作するソリューションも必要です)。すでに 1 つのバージョンをリリースしましたが、新しいバージョンではテーブルを変更する必要があります。
テーブル内のすべての列が存在するかどうか、およびデータを失うことなくテーブルを更新しないかどうかを Java で確認する最も効率的な方法は何ですか?
新しいバージョンの最初の実行時にテーブルを変更するか、次のようなことを行うことができます
try {
readData();
} catch (SQLException e) {
// if the cause is missing new columns
alterTables();
readData();
}
他にも多くの解決策が考えられます。
各バージョンの後に、 liquibaseを使用してデータを作成/移行できます。Liquibase を使用すると、構成ファイル (.xml) に基づいて変更を作成できます。後で、構成ファイルにさらに変更を加えると、古いデータベースが自動的に更新されます。