Backup database in next release
This commit is contained in:
parent
8d85ec3cd9
commit
ebb1022100
@ -1,5 +1,6 @@
|
|||||||
package exh
|
package exh
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
import com.elvishew.xlog.XLog
|
import com.elvishew.xlog.XLog
|
||||||
import com.pushtorefresh.storio.sqlite.queries.Query
|
import com.pushtorefresh.storio.sqlite.queries.Query
|
||||||
import com.pushtorefresh.storio.sqlite.queries.RawQuery
|
import com.pushtorefresh.storio.sqlite.queries.RawQuery
|
||||||
@ -15,6 +16,7 @@ import eu.kanade.tachiyomi.data.preference.getOrDefault
|
|||||||
import exh.source.BlacklistedSources
|
import exh.source.BlacklistedSources
|
||||||
import rx.Observable
|
import rx.Observable
|
||||||
import uy.kohesive.injekt.injectLazy
|
import uy.kohesive.injekt.injectLazy
|
||||||
|
import java.io.File
|
||||||
import java.net.URI
|
import java.net.URI
|
||||||
import java.net.URISyntaxException
|
import java.net.URISyntaxException
|
||||||
|
|
||||||
@ -23,7 +25,7 @@ object EXHMigrations {
|
|||||||
|
|
||||||
private val logger = XLog.tag("EXHMigrations")
|
private val logger = XLog.tag("EXHMigrations")
|
||||||
|
|
||||||
private const val CURRENT_MIGRATION_VERSION = 1
|
private const val CURRENT_MIGRATION_VERSION = 2
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Performs a migration when the application is updated.
|
* Performs a migration when the application is updated.
|
||||||
@ -71,6 +73,11 @@ object EXHMigrations {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Backup database in next release
|
||||||
|
if (oldVersion < 2) {
|
||||||
|
backupDatabase(context, oldVersion)
|
||||||
|
}
|
||||||
|
|
||||||
preferences.eh_lastVersionCode().set(CURRENT_MIGRATION_VERSION)
|
preferences.eh_lastVersionCode().set(CURRENT_MIGRATION_VERSION)
|
||||||
|
|
||||||
return true
|
return true
|
||||||
@ -117,6 +124,18 @@ object EXHMigrations {
|
|||||||
return Observable.just(backupEntry)
|
return Observable.just(backupEntry)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun backupDatabase(context: Context, oldMigrationVersion: Int) {
|
||||||
|
val backupLocation = File(File(context.filesDir, "exh_db_bck"), "$oldMigrationVersion.bck.db")
|
||||||
|
if(backupLocation.exists()) return // Do not backup same version twice
|
||||||
|
|
||||||
|
val dbLocation = context.getDatabasePath(db.lowLevel().sqliteOpenHelper().databaseName)
|
||||||
|
try {
|
||||||
|
dbLocation.copyTo(backupLocation, overwrite = true)
|
||||||
|
} catch(t: Throwable) {
|
||||||
|
XLog.w("Failed to backup database!")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun getUrlWithoutDomain(orig: String): String {
|
private fun getUrlWithoutDomain(orig: String): String {
|
||||||
return try {
|
return try {
|
||||||
val uri = URI(orig)
|
val uri = URI(orig)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user