私のAndroidアプリケーションでは、ORMLiteを使用してローカルデータベースにデータを格納しています。onUpgrade()
メソッドを使用してそのデータベースにカラムを追加すると、そのテーブルは消去されます。 私はORMLiteのドキュメントに記載upgrade schema方法を使用しています: ORMLiteテーブルにカラムを追加するときにデータをドロップする
private static final int DATABASE_VERSION = 10;
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource, int oldVer, int newVer) {
try {
if(oldVer < 10){
getGuardiansDao().executeRaw("ALTER TABLE `messages` ADD COLUMN updated_by TEXT;");
getGuardiansDao().executeRaw("ALTER TABLE `messages` ADD COLUMN updated_by_time TEXT;");
}
} catch (SQLException e) {
Log.e(DBManager.class.getName(), "Unable to upgrade database from version " + oldVer + " to new "
+ newVer, e);
}
}
そして、そのテーブルに割り当てられたクラスで
:@DatabaseTable(tableName = "messages")
public class Message extends Object implements Parcelable{
.
.
.
@DatabaseField
private String updatedBy;
@DatabaseField
private String updatedByTime;
}
今では、テーブルに格納されているすべてのデータを消去することを実行した後messages
と私はそれがなぜ起こっているのか何か手がかりがありません。
あなたは正しいです。実際、それは非常にばかげた間違いです。深刻なチェックの後、割り当てられたクラスのデュオの名前で新しい列名をわずかに変更することができない私は世話をしませんでした、なぜ前に現れていなかったのかわかりませんが、それが理由でした。 –