SQLite数据库,onUpgrade for version1发布

时间:2017-04-09 14:19:03

标签: android database sqlite

好的,所以我的应用程序已准备好完全发布。我想正确准备我的SQLite数据库以便发布。我的初始开发程序使用了以下onUpgrade代码(SQLite db helper类)。

 @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
    onCreate(db);
}

然后,当我需要更新我的数据库时,我按照this教程增加了修订号,添加了列,并且都运行良好。例如,我的onUpgrade改为此。

    private static final String DATABASE_ALTER_ADD_VELOCITY = "ALTER TABLE walk_run_table ADD COLUMN VELOCITY_CALC REAL";

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        if (oldVersion < 2) db.execSQL(DATABASE_ALTER_ADD_VELOCITY);
        if (oldVersion < 3) db.execSQL(DATABASE_ALTER_ADD_ELEVATION);
    }

现在,我正在准备发布,并希望将我的版本恢复到1(因为当然所有用户都将获得全新安装)。我的onUpgrade应该恢复为“DROP TABLE IF EXISTS”..​​..然后继续进行修改,如前面提到的教程所示?这对我的开发工作很有用,我怀疑它可以很好地发布,但我想确保将我的程序上传到谷歌播放。有没有更好的做法来为将来的修订准备SQLite数据库?

1 个答案:

答案 0 :(得分:1)

您使用的是哪个实际版本号并不重要;它可以达到40亿。 未来的应用程序版本无论如何都必须增加数据库版本;现在把它设置为一个没有任何好处。

您发布的应用程序永远不会遇到旧数据库,因此您可以删除代码以从较旧的开发版本进行更新。 如果您确实遇到较小的版本号,则意外地在开发计算机上运行它,或者数据库文件已损坏,或者有人将假数据库复制到您的应用程序的存储中。在所有情况下,正确的反应是错误输出。