【问题标题】:Database migration in sqlciphersqlcipher 中的数据库迁移
【发布时间】:2016-03-26 14:42:43
【问题描述】:

我使用 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文件夹。

谢谢

【问题讨论】:

    标签: android sqlcipher


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-01
      • 1970-01-01
      • 2011-01-28
      • 2011-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多