gpt4 book ai didi

android - onUpgrade 数据库安卓版本号不增加

转载 作者:太空狗 更新时间:2023-10-29 13:39:28 26 4
gpt4 key购买 nike

我正在尝试更新我的 Android 应用程序中的数据库。当我更新版本号时,会调用 onUpgrade,但版本号不会增加,因此每次访问数据库时都会调用 onUpgrade。这是我的代码:

private final static int DB_VERSION = 8;

public DataBaseHelper(Context context) {

super(context, DB_NAME, null, DB_VERSION);
this.myContext = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.d(TAG, "in onCreate");
try {
copyDataBase();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.d(TAG, "in onUpgrade. Old is: " + oldVersion + " New is: " + newVersion);
myContext.deleteDatabase(DB_NAME);
Log.d(TAG, "the version is " + db.getVersion());
db.setVersion(newVersion);
Log.d(TAG, "the version is " + db.getVersion());
onCreate(db);
}

有人知道为什么会这样吗?

最佳答案

不要尝试手动设置版本。 (这一切都得到了照顾。)

不要尝试删除数据库。您正在对其进行升级,手动设置刚刚删除的数据库的版本效果不佳并不会让您感到惊讶。

onUpgrade 中您应该做的就是对表的结构进行必要的更改。如果您想通过删除当前表(而不是数据库)然后重新创建它们来执行此操作,那很好。

如果您需要保留表中的数据,请查看此问题以获取有关如何执行此操作的建议: Upgrade SQLite database from one version to another?

关于android - onUpgrade 数据库安卓版本号不增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7534881/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com