SQLite数据库在升级应用程序时添加新表

时间:2013-09-22 06:36:04

标签: android android-sqlite

我在我的应用程序的数据库中再添加一个表 但是,如果我在不清除数据的情况下升级我的应用程序,则新表似乎不会自动添加 因此,需要从新表中检索数据的某些代码会失败
是否可以在应用升级时自动添加新表?

3 个答案:

答案 0 :(得分:0)

是的,有一个方法onUpgrade

如果您的版本高于上一个版本,请在那里添加代码并增加数据库版本 onUpgrade被触发,你的代码将执行你写的添加表

样品

请记住在超级调用中增加版本代码

class Database extends SQLiteOpenHelper
{
public Database(Context _myContext)
    {
    super(_myContext, DB_NAME, null, DB_VERSION_CODE);

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
    {
        if(oldVersion > newVersion)
        {
            // create a new table what you want to create you can also check the existence of the table
        }
    }
}

答案 1 :(得分:0)

答案 2 :(得分:0)

有一个Android助手类可以使用应用程序的原始资产文件来管理数据库创建和版本管理。

看看这个:

https://github.com/jgilfelt/android-sqlite-asset-helper