我是否需要控制数据库版本以进行更新?

时间:2012-11-28 09:33:20

标签: android database version upgrade

我即将发布Android应用程序,我对数据库版本控制有点担心。

问题是我只在执行期间使用数据库,每次启动应用程序时我都会删除所有内容,因为它们不需要持久化。代码是这样的:

public synchronized void createDatabase() {
    if (database == null) {
        database =  this.openOrCreateDatabase(DATABASENAME, MODE_PRIVATE, null);
    }

    database.execSQL("DROP TABLE IF EXISTS " + Xxxxxxxx.TABLE_NAME);
    database.execSQL("DROP TABLE IF EXISTS " + Yyyyyyyy.TABLE_NAME);
    database.execSQL("DROP TABLE IF EXISTS " + Oooooooo.TABLE_NAME);
    database.execSQL("DROP TABLE IF EXISTS " + Ppppppppp.TABLE_NAME);
    database.execSQL("DROP TABLE IF EXISTS " + Mmmmmmmmm.TABLE_NAME);
    database.execSQL("DROP TABLE IF EXISTS " + Aaaaaaaaa.TABLE_NAME);

    database.execSQL(Xxxxxxxx.CREATE_PROVIDERS_TABLE);
    database.execSQL(Yyyyyyyy.CREATE_CONTENTS_TABLE);
    database.execSQL(Oooooooo.CREATE_EVENTS_TABLE);
    database.execSQL(Ppppppppp.CREATE_EVENTS_ANSWERS_TABLE);
    database.execSQL(Mmmmmmmmm.CREATE_CATEGORY_TABLE);
    database.execSQL(Aaaaaaaaa.CREATE_SUBCATEGORY_TABLE);
}

我的问题是,考虑到我在启动应用程序时如何删除所有内容,是否需要控制不同的版本?如果将来我添加新列怎么办?它会正常运作吗?

提前致谢

2 个答案:

答案 0 :(得分:0)

我认为你根本不需要担心db版本。

如果您在将来的版本中实际更改了数据库模式,那么无关紧要,因为下次启动时将删除/重新创建所有表。

答案 1 :(得分:0)

考虑到我在启动应用时如何删除所有内容,是否需要控制不同的版本?如果将来我添加新列怎么办?它会正常运作吗?

您正在删除所有表并重新创建它们,因此您不需要控制数据库的版本,如果升级现有数据库并修改表,则必须更改数据库的版本。希望这会有所帮助