浏览代码

Configure SQLite

- Turn on `foreign_keys` to cascade on delete properly
- Turn on `journal_mode` and set `synchronous` to NORMAL which may help performance for larger libraries

Based on d977b89af1f2a8850437ebd978535fc3fbfd257e

Co-authored-by: ghostbear <[email protected]>
arkon 2 年之前
父节点
当前提交
ac4f98e152
共有 1 个文件被更改,包括 9 次插入0 次删除
  1. 9 0
      app/src/main/java/eu/kanade/tachiyomi/data/database/DbOpenCallback.kt

+ 9 - 0
app/src/main/java/eu/kanade/tachiyomi/data/database/DbOpenCallback.kt

@@ -98,5 +98,14 @@ class DbOpenCallback : SupportSQLiteOpenHelper.Callback(DATABASE_VERSION) {
 
     override fun onConfigure(db: SupportSQLiteDatabase) {
         db.setForeignKeyConstraintsEnabled(true)
+        setPragma(db, "foreign_keys = ON")
+        setPragma(db, "journal_mode = WAL")
+        setPragma(db, "synchronous = NORMAL")
+    }
+
+    private fun setPragma(db: SupportSQLiteDatabase, pragma: String) {
+        val cursor = db.query("PRAGMA $pragma")
+        cursor.moveToFirst()
+        cursor.close()
     }
 }