Androidアプリを開発し、バージョン1.0をリリースしました。アプリには5つのテーブルを持つSQLiteローカルデータベースが含まれています。
現在、バージョン2.0をリリースし、バージョン1.0のユーザーも更新する予定です。バージョン2.0では、以前の5つのテーブルに2つのテーブルが追加されたため、現在は7つのテーブルになっています。
今私の質問は、バージョン1.0のユーザーはすべてローカルデータベースにいくつかのデータを持っています。彼がバージョン2.0に更新すると、以前のデータは失われますか?もしそうなら。では、別の方法は何ですか?
このコードを使用できるonUpgradeメソッドにすべての変更を加える必要があります。
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "ALTER TABLE " + TABLE_SECRET + " ADD COLUMN " +
"name_of_column_to_be_added" + " INTEGER";
db.execSQL(sql);
}
これにより、現在のデータベースに列が追加されます。データベースがデータを失うことはありません。注意:onUpgradeは、getWriteableDatabaseまたはgetReadableDatabaseが実行され、データベースのバージョンが以前のバージョンと異なる場合に呼び出されます。
データベースのバージョンを変更し、onUpgrade(SQLiteDatabase db, int oldVersion, int newVesion)
メソッドに2つのテーブル作成メソッドを追加します。これで、以前のデータが失われることはありません。
これがお役に立てば幸いです。
SQLiteOpenHelper#onUpgrade
でいくつか実行し、古いデータを取得できます。新しいテーブルに挿入します