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:
Julian Raufelder 2021-05-11 17:32:22 +02:00
parent bf2341af21
commit 318a7422f4
No known key found for this signature in database
GPG Key ID: 17EE71F6634E381D
4 changed files with 49 additions and 16 deletions

View File

@ -78,7 +78,7 @@ android {
}
greendao {
schemaVersion 7
schemaVersion 8
}
configurations.all {

View File

@ -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() {

View File

@ -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()]));
}
}

View 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)
}
}