Delete local storage cloud and set its vault connection to null (#251)
This commit is contained in:
parent
91d1a65ba7
commit
7add3e5bed
@ -82,7 +82,7 @@ android {
|
||||
}
|
||||
|
||||
greendao {
|
||||
schemaVersion 9
|
||||
schemaVersion 10
|
||||
}
|
||||
|
||||
configurations.all {
|
||||
|
@ -50,6 +50,7 @@ class UpgradeDatabaseTest {
|
||||
Upgrade6To7().applyTo(db, 6)
|
||||
Upgrade7To8().applyTo(db, 7)
|
||||
Upgrade8To9(sharedPreferencesHandler).applyTo(db, 8)
|
||||
Upgrade9To10().applyTo(db, 9)
|
||||
|
||||
CloudEntityDao(DaoConfig(db, CloudEntityDao::class.java)).loadAll()
|
||||
VaultEntityDao(DaoConfig(db, VaultEntityDao::class.java)).loadAll()
|
||||
@ -407,4 +408,60 @@ class UpgradeDatabaseTest {
|
||||
|
||||
Assert.assertThat(sharedPreferencesHandler.isBetaModeAlreadyShown(), CoreMatchers.`is`(false))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun upgrade9To10() {
|
||||
Upgrade0To1().applyTo(db, 0)
|
||||
Upgrade1To2().applyTo(db, 1)
|
||||
Upgrade2To3(context).applyTo(db, 2)
|
||||
Upgrade3To4().applyTo(db, 3)
|
||||
Upgrade4To5().applyTo(db, 4)
|
||||
Upgrade5To6().applyTo(db, 5)
|
||||
Upgrade6To7().applyTo(db, 6)
|
||||
Upgrade7To8().applyTo(db, 7)
|
||||
Upgrade8To9(sharedPreferencesHandler).applyTo(db, 8)
|
||||
|
||||
Sql.insertInto("CLOUD_ENTITY") //
|
||||
.integer("_id", 15) //
|
||||
.text("TYPE", CloudType.LOCAL.name) //
|
||||
.text("URL", "url") //
|
||||
.text("USERNAME", "username") //
|
||||
.text("WEBDAV_CERTIFICATE", "certificate") //
|
||||
.text("ACCESS_TOKEN", "accessToken")
|
||||
.text("S3_BUCKET", "s3Bucket") //
|
||||
.text("S3_REGION", "s3Region") //
|
||||
.text("S3_SECRET_KEY", "s3SecretKey") //
|
||||
.executeOn(db)
|
||||
|
||||
Sql.insertInto("VAULT_ENTITY") //
|
||||
.integer("_id", 25) //
|
||||
.integer("FOLDER_CLOUD_ID", 15) //
|
||||
.text("FOLDER_PATH", "path") //
|
||||
.text("FOLDER_NAME", "name") //
|
||||
.text("CLOUD_TYPE", CloudType.LOCAL.name) //
|
||||
.text("PASSWORD", "password") //
|
||||
.integer("POSITION", 10) //
|
||||
.executeOn(db)
|
||||
|
||||
Sql.insertInto("VAULT_ENTITY") //
|
||||
.integer("_id", 26) //
|
||||
.integer("FOLDER_CLOUD_ID", 4) //
|
||||
.text("FOLDER_PATH", "path") //
|
||||
.text("FOLDER_NAME", "name") //
|
||||
.text("CLOUD_TYPE", CloudType.LOCAL.name) //
|
||||
.text("PASSWORD", "password") //
|
||||
.integer("POSITION", 11) //
|
||||
.executeOn(db)
|
||||
|
||||
Upgrade9To10().applyTo(db, 9)
|
||||
|
||||
Sql.query("VAULT_ENTITY").executeOn(db).use {
|
||||
it.moveToFirst()
|
||||
Assert.assertThat(it.getString(it.getColumnIndex("FOLDER_CLOUD_ID")), CoreMatchers.`is`("15"))
|
||||
it.moveToNext()
|
||||
Assert.assertThat(it.getString(it.getColumnIndex("FOLDER_CLOUD_ID")), CoreMatchers.nullValue())
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -27,7 +27,8 @@ class DatabaseUpgrades {
|
||||
Upgrade5To6 upgrade5To6, //
|
||||
Upgrade6To7 upgrade6To7, //
|
||||
Upgrade7To8 upgrade7To8, //
|
||||
Upgrade8To9 upgrade8To9) {
|
||||
Upgrade8To9 upgrade8To9, //
|
||||
Upgrade9To10 upgrade9To10) {
|
||||
|
||||
availableUpgrades = defineUpgrades( //
|
||||
upgrade0To1, //
|
||||
@ -38,7 +39,8 @@ class DatabaseUpgrades {
|
||||
upgrade5To6, //
|
||||
upgrade6To7, //
|
||||
upgrade7To8, //
|
||||
upgrade8To9);
|
||||
upgrade8To9, //
|
||||
upgrade9To10);
|
||||
}
|
||||
|
||||
private static Comparator<DatabaseUpgrade> reverseOrder() {
|
||||
|
30
data/src/main/java/org/cryptomator/data/db/Upgrade9To10.kt
Normal file
30
data/src/main/java/org/cryptomator/data/db/Upgrade9To10.kt
Normal file
@ -0,0 +1,30 @@
|
||||
package org.cryptomator.data.db
|
||||
|
||||
import org.cryptomator.domain.CloudType
|
||||
import org.greenrobot.greendao.database.Database
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Singleton
|
||||
|
||||
@Singleton
|
||||
internal class Upgrade9To10 @Inject constructor() : DatabaseUpgrade(9, 10) {
|
||||
|
||||
override fun internalApplyTo(db: Database, origin: Int) {
|
||||
db.beginTransaction()
|
||||
|
||||
try {
|
||||
Sql.update("VAULT_ENTITY")
|
||||
.set("FOLDER_CLOUD_ID", Sql.toString(null))
|
||||
.where("FOLDER_CLOUD_ID", Sql.eq(4))
|
||||
.executeOn(db)
|
||||
|
||||
Sql.deleteFrom("CLOUD_ENTITY")
|
||||
.where("FOLDER_CLOUD_ID", Sql.eq(4))
|
||||
.where("TYPE", Sql.eq(CloudType.LOCAL.name))
|
||||
.executeOn(db)
|
||||
|
||||
db.setTransactionSuccessful()
|
||||
} finally {
|
||||
db.endTransaction()
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user