GreenDAO onUpdate

3

当我更新数据库版本时,它没有删除所有的表格(尽管我认为这将是默认行为)。我还需要做什么吗?


你的意思是要改变数据库模式吗?如果你想要改变数据库模式,你应该在生成器中改变模式版本并重新生成代码。或者你想要在升级数据库时进行一些数据库迁移,所以你想要自定义onUpgrade部分? - Nevin Chen
2个回答

2
请查看DaoMaster.java文件。
@Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables");
            dropAllTables(db, true);
            onCreate(db);
        }

确保在 dropAllTables(db, true); 中传入 true,如果问题仍然存在,请在此处进行调试。

2

你使用的是哪个SQLiteOpenHelper?

请检查生成的DaoMaster类。它有一个内部类DevOpenHelper,它会在更新时删除所有表。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接