SQLite版本号升级时,会执行DatabaseOpenHelper的onCreate()??
App版本更新时对SQLite数据库表的修改问题- http://blog.csdn.net/u013067184/article/details/48031081
SQLiteException: table TAREAS has no column - https://stackoverflow.com/questions/36308339/greendao-android-database-sqlite-sqliteexception-table-tareas-has-no-column-na , https://stackoverflow.com/questions/934237/sqlite-exception-no-such-table-error
版本更新时,sqlite表结构发生变化了该怎样处理,最有效的方案就是先删除老的数据,重新调用onCreate(db);
@Override
public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion) {
context.deleteDatabase(DB_NAME);
onCreate(db);
}
GreenDaoUpgradeHelper- https://github.com/yuweiguocn/GreenDaoUpgradeHelper
App版本更新时对SQLite数据库表的修改问题- http://blog.csdn.net/u013067184/article/details/48031081
Android SQLite数据库的数据升级与降级- http://www.cnblogs.com/zhaoyucong/p/6118226.html 主要的三个方法: onCreate()该方法是在你没有安装过(第一次运行)的时候执行,这时可以在这个函数中完成初始的数据表的创建 onUpgrade()该方法是在你安装过的情况下,对数据继续更新的时候执行,这时可以在这个函数完成数据库版本升级带来的旧版本的兼容问题,以及数据迁移问题。 onDowngrade()该方法是在现逆向降级(如应用由版本号4降级安装版本号为3的包)时必须重写的方法,如果应用降级覆盖安装时没有重写该方法则会崩溃。 onCreate:调用时机是用户首次安装应用后启动,或是清除App数据库文件后启动。这时可以在这个函数中完成初始的数据表的创建。 onUpgrade:调用时机是用户在做应用更新,覆盖安装后启动,如果新版本中数据库版本号要比旧版本中的数据库版本号高则会调用。这时可以在这个函数完成数据库版本升级带来的旧版本的兼容问题,以及数据迁移问题。 因为有的用户手机上本来就有第一版本的APP,所以在App升级到第二版本时会执行onUpgrade(),不会执行onCreate()。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。