sqlcipher中的数据库迁移

时间:2016-03-26 14:42:43

标签: android sqlcipher

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

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

SQLiteDatabase

中的此行发生异常
this.dbopen(this.mPath, this.mFlags);

mFlags没有价值。

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

由于

1 个答案:

答案 0 :(得分:1)

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