Drop S3 clouds and vaults from the database
This is necessary because the path/region handling has changed with the new dependency in the s3 cloud
This commit is contained in:
parent
bf2341af21
commit
318a7422f4
@ -78,7 +78,7 @@ android {
|
||||
}
|
||||
|
||||
greendao {
|
||||
schemaVersion 7
|
||||
schemaVersion 8
|
||||
}
|
||||
|
||||
configurations.all {
|
||||
|
@ -25,7 +25,8 @@ class DatabaseUpgrades {
|
||||
Upgrade3To4 upgrade3To4, //
|
||||
Upgrade4To5 upgrade4To5, //
|
||||
Upgrade5To6 upgrade5To6, //
|
||||
Upgrade6To7 upgrade6To7) {
|
||||
Upgrade6To7 upgrade6To7, //
|
||||
Upgrade7To8 upgrade7To8) {
|
||||
|
||||
availableUpgrades = defineUpgrades( //
|
||||
upgrade0To1, //
|
||||
@ -34,7 +35,8 @@ class DatabaseUpgrades {
|
||||
upgrade3To4, //
|
||||
upgrade4To5, //
|
||||
upgrade5To6, //
|
||||
upgrade6To7);
|
||||
upgrade6To7, //
|
||||
upgrade7To8);
|
||||
}
|
||||
|
||||
private static Comparator<DatabaseUpgrade> reverseOrder() {
|
||||
|
@ -498,27 +498,26 @@ class Sql {
|
||||
|
||||
public static class SqlDeleteBuilder {
|
||||
|
||||
private final String table;
|
||||
private String whereClause;
|
||||
private String[] whereArgs;
|
||||
private final String tableName;
|
||||
|
||||
public SqlDeleteBuilder(String table) {
|
||||
this.table = table;
|
||||
private final StringBuilder whereClause = new StringBuilder();
|
||||
private final List<String> whereArgs = new ArrayList<>();
|
||||
|
||||
public SqlDeleteBuilder(String tableName) {
|
||||
this.tableName = tableName;
|
||||
}
|
||||
|
||||
public SqlDeleteBuilder whereClause(String whereClause) {
|
||||
this.whereClause = whereClause;
|
||||
return this;
|
||||
}
|
||||
|
||||
public SqlDeleteBuilder whereArgs(String[] whereArgs) {
|
||||
this.whereArgs = whereArgs;
|
||||
public SqlDeleteBuilder where(String column, Criterion criterion) {
|
||||
if (whereClause.length() > 0) {
|
||||
whereClause.append(" AND ");
|
||||
}
|
||||
criterion.appendTo(column, whereClause, whereArgs);
|
||||
return this;
|
||||
}
|
||||
|
||||
public void executeOn(Database wrapped) {
|
||||
SQLiteDatabase db = unwrap(wrapped);
|
||||
db.delete(table, whereClause, whereArgs);
|
||||
db.delete(tableName, whereClause.toString(), whereArgs.toArray(new String[whereArgs.size()]));
|
||||
}
|
||||
}
|
||||
|
||||
|
32
data/src/main/java/org/cryptomator/data/db/Upgrade7To8.kt
Normal file
32
data/src/main/java/org/cryptomator/data/db/Upgrade7To8.kt
Normal file
@ -0,0 +1,32 @@
|
||||
package org.cryptomator.data.db
|
||||
|
||||
import org.greenrobot.greendao.database.Database
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Singleton
|
||||
|
||||
@Singleton
|
||||
internal class Upgrade7To8 @Inject constructor() : DatabaseUpgrade(7, 8) {
|
||||
|
||||
override fun internalApplyTo(db: Database, origin: Int) {
|
||||
db.beginTransaction()
|
||||
try {
|
||||
dropS3Vaults(db)
|
||||
dropS3Clouds(db)
|
||||
db.setTransactionSuccessful()
|
||||
} finally {
|
||||
db.endTransaction()
|
||||
}
|
||||
}
|
||||
|
||||
private fun dropS3Vaults(db: Database) {
|
||||
Sql.deleteFrom("VAULT_ENTITY") //
|
||||
.where("CLOUD_TYPE", Sql.eq("S3"))
|
||||
.executeOn(db)
|
||||
}
|
||||
|
||||
private fun dropS3Clouds(db: Database) {
|
||||
Sql.deleteFrom("CLOUD_ENTITY") //
|
||||
.where("TYPE", Sql.eq("S3"))
|
||||
.executeOn(db)
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user