GreenDAO не может получить доступ к существующей базе данных после обновления sqlcipher с 3.5.2 до 4.0.1 - PullRequest
0 голосов
/ 20 февраля 2019

Я использую GreenDAO с SQLCipher.После обновления SQLCipher с 3.5.2 до 4.0.1 мое приложение не может получить доступ к старой зашифрованной базе данных.Я уже искал решение и обнаружил, что мне нужно запустить PRAGMA cipher_migrate в postKey из SQLiteDatabaseHook для переноса моей базы данных.Я пытался так, но ничего не меняется.: 1006

    SQLiteDatabaseHook hook = new SQLiteDatabaseHook() {
        @Override
        public void preKey(SQLiteDatabase database) {

        }

        @Override
        public void postKey(SQLiteDatabase database) {
            database.execSQL("PRAGMA key = '" + key + "';");
            database.execSQL("PRAGMA cipher_migrate;");
        }
    };
    Database db = new EncryptedDatabase(SQLiteDatabase.openOrCreateDatabase("DB.db", key, null, hook));
    return new DaoMaster(db).newSession();
...