Improve migration mechanism

This commit is contained in:
Vincent Breitmoser
2018-01-30 11:20:23 +01:00
parent ca8835420d
commit eb241a30d7

View File

@@ -24,6 +24,7 @@ import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import android.content.Context; import android.content.Context;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException; import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteOpenHelper;
@@ -413,6 +414,7 @@ public class KeychainDatabase extends SQLiteOpenHelper {
+ ")"); + ")");
case 24: case 24:
try {
db.beginTransaction(); db.beginTransaction();
db.execSQL("ALTER TABLE api_autocrypt_peers RENAME TO tmp"); db.execSQL("ALTER TABLE api_autocrypt_peers RENAME TO tmp");
db.execSQL("CREATE TABLE api_autocrypt_peers (" db.execSQL("CREATE TABLE api_autocrypt_peers ("
@@ -447,10 +449,12 @@ public class KeychainDatabase extends SQLiteOpenHelper {
"FROM tmp WHERE state = 4"); // from Autocrypt 0.X, state = "mutual" "FROM tmp WHERE state = 4"); // from Autocrypt 0.X, state = "mutual"
db.execSQL("DROP TABLE tmp"); db.execSQL("DROP TABLE tmp");
db.setTransactionSuccessful(); db.setTransactionSuccessful();
} finally {
db.endTransaction(); db.endTransaction();
}
db.execSQL("CREATE INDEX IF NOT EXISTS uids_by_email ON user_packets (email);");
db.execSQL("DROP INDEX keys_by_rank"); db.execSQL("DROP INDEX keys_by_rank");
db.execSQL("CREATE INDEX uids_by_email ON user_packets (email);");
db.execSQL("CREATE INDEX keys_by_rank ON keys(rank, master_key_id);"); db.execSQL("CREATE INDEX keys_by_rank ON keys(rank, master_key_id);");
} }
} }