sqlcipher中的数据库迁移

Database migration in sqlcipher

我使用 sqlcipher 3.* 来加密我的数据库。它工作得很好;但是现在我想迁移到新数据库(版本 2)。当我更改数据库版本时,打开数据库不起作用并且无法打开以前的数据库。

myDataBase = SQLiteDatabase.openOrCreateDatabase(DB_PATH,DB_PASS, null);

classSQLiteDatabase

这一行出现异常
this.dbopen(this.mPath, this.mFlags);

mFlags不值。

第二个问题,数据库版本。总是 return 0 。 我当前的 sqlcipher 版本是 3.3.1-2,它是从 Maven 添加的。 我将 icudt46l.zip 添加到 assets 文件夹。 并将 commons-codec.jarquava-r09.jarsqlcipher-javadoc.jar 添加到 libs 文件夹。

谢谢

听起来好像没有设置数据库的版本。您可以使用 SQLiteDatabase 实例中的 setVersion(…)getVersion() 手动执行此操作,或者如果您要对 SQLiteOpenHelper 进行子类化,则需要提供一个值。我们有一个 test 来验证 onUpgrade(…) 函数在版本号随着 SQLiteOpenHelper 子类发生变化时被调用。