当前位置:首页 > 数据库 > SQlite

如何在不丢失现有数据的情况下升级Android应用程序版本一个自有SQLite数据库

我需要将我在市场上的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)!