プロジェクト「ActiveAndroid」で使用しています。私は保持しているモデルを持っています。ここにモデルがあります:
@Table(name="Params")
public class Params extends Model {
public Params() {
super();
}
@Expose
@Column(name="height")
@SerializedName("heigth")
public int heigth;
@Expose
@Column(name="weight")
@SerializedName("weight")
public int weight;
}
ここですべて保存します:
public void success(User user, Response response) {
user.params.save();
user.save();
ActiveAndroid.clearCache();
}
すべてがうまくいきます!しかし、モデルに別のフィールドを追加したい場合:
@Expose
@Column(name="strong")
@SerializedName("strong")
public int strong;
エラーが発生します:
android.database.sqlite.SQLiteException: table Params has no column named strong (code 1): , while compiling: INSERT INTO Params(Id,weight,height,strong) VALUES (?,?,?,?)
もちろん、このエラーの理由はわかっています。テーブルはそのような列ではないためです。それが問題です、この列を追加する方法???
私が試した今:
プログラムを完全に削除し、再びコンパイルして実行すると、すべて正常に動作します! この列から新しいテーブルを作成するためです。
マニフェスト データベースのバージョンを変更しようとしましたが、成功しませんでした。
アップグレードの方法でデータベースを通常に使用すると、データベースのバージョンを変更してテーブルを再構築できることを私は知っています。しかし、ORM「ActiveAndroid」でそれを行う方法は?