我需要将我在市场上的Android应用程序更新到下一个版本.下一个版本我需要更新sqlite DB而不会丢失现有数据.
在版本1中,我没有在运行时创建表,而是从“assets”文件夹中获取数据库文件,并将其复制到我的应用程序的系统数据库路径中.
请参阅此链接
http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/
我的应用程序的下一个版本我修改了exsting表列并添加了额外的记录,并且还有很少的新表.我已经更新了数据库并复制到资产文件夹.
这适用于第一次购买应用的用户,但不适用于现有用户,我的问题是如何在不丢失现有数据的情况下更新第一版用户数据库
山姆.
解决方法:
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion,
int newVersion)
{
Log.w(TAG, "Upgrading database from version " + oldVersion
+ " to "
+ newVersion + ", which will destroy all old data");
if(oldVersion == 2 && newVersion == 3)
{
db.execSQL("ALTER TABLE xyz ADD bobby int default 0");
}
else
{
db.execSQL("DROP TABLE IF EXISTS xyz");
onCreate(db);
}
}
}
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!