私はすべてがOKに働い@tagsを経由してエンティティを作成する上で私の最初の走行では、私のDB用GreenDao 3.2.2、GreenDao - アンドロイド - ONUPGRADE(暗号化されたデータベース)
を使用してい呼び出されていません。私は、テーブルにいくつかの小道具を追加したので
は、今私は、より高いバージョンにGradleのスキーマを編集しています:
greendao {
schemaVersion 4
}
一部の列ではないのでOpenHelper onUpgrade
方法は、このように私のプロジェクトは常にクラッシュし、呼び出されることはありませんが見つかりました。
Applicationクラス
//Init DB
UpgradeHelper helper = new UpgradeHelper(this, ENCRYPTED ? "db-encrypted" : "db", null);
Database db = ENCRYPTED ? helper.getEncryptedWritableDb("app-cipher") : helper.getWritableDb();
daoSession = new DaoMaster(db).newSession();
OpenHelperクラス
public class UpgradeHelper extends DaoMaster.OpenHelper {
public UpgradeHelper(Context context, String name, SQLiteDatabase.CursorFactory factory) {
super(context, name, factory);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//never gets called
Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion);
//do migrations
}
}
私は何かが足りないのですか?
の
Database
オブジェクトを受け取るためにすべての私の移行方法を更新するために必要なコースのあなたを行います作成したDBにアクセスできますか?あなたはSQLiteStudioでそれを開くことができますか? – MatPag
@MatPagはい私は – htafoya
@MatPag PRAGMA user_versionコマンドはgradleとDaoMasterで定義された正しいSCHEMA_VERSIONを与えています:(ただし、私のテーブルは最新のスキームに更新されていません – htafoya