Fix database export

This commit is contained in:
FooIbar committed 2025-12-02 10:00:48 +08:00
1 parent 30fc750e17
commit 8cc531ccec
2 files changed
+8 -3

No files matched your search

@@ -15,6 +15,8 @@
*/
package com.hippo.ehviewer
import androidx.room.execSQL
import androidx.room.useWriterConnection
import arrow.fx.coroutines.resource
import arrow.fx.coroutines.resourceScope
import com.ehviewer.core.data.model.asEntity
@@ -276,8 +278,11 @@ object EhDB {
db.filterDao().update(filter)
}
fun exportDB(file: Path) {
db.query("PRAGMA wal_checkpoint(FULL)", null).use { it.moveToNext() }
suspend fun exportDB(file: Path) {
db.useWriterConnection { conn ->
conn.execSQL("PRAGMA wal_checkpoint(FULL)")
conn.execSQL("VACUUM")
}
val dbFile = getDatabasePath(DB_NAME)
dbFile sendTo file
}
@@ -94,7 +94,7 @@ private fun dumplog(uri: Uri): Unit = with(ctx) {
}
context(ctx: Context)
private fun exportDatabase(uri: Uri) {
private suspend fun exportDatabase(uri: Uri) {
ctx.grantUriPermission(BuildConfig.APPLICATION_ID, uri, Intent.FLAG_GRANT_READ_URI_PERMISSION)
EhDB.exportDB(uri.toOkioPath())
}