Переглянути джерело

:art: 数据历史文档和资源文件支持分页和搜索 https://github.com/siyuan-note/siyuan/issues/4901

Liang Ding 2 роки тому
батько
коміт
f69798f91e
3 змінених файлів з 30 додано та 21 видалено
  1. 1 0
      kernel/main.go
  2. 1 0
      kernel/mobile/kernel.go
  3. 28 21
      kernel/sql/database.go

+ 1 - 0
kernel/main.go

@@ -34,6 +34,7 @@ func main() {
 	go server.Serve(false)
 	model.InitAppearance()
 	sql.InitDatabase(false)
+	sql.InitHistoryDatabase(false)
 	sql.SetCaseSensitive(model.Conf.Search.CaseSensitive)
 
 	model.SyncData(true, false, false)

+ 1 - 0
kernel/mobile/kernel.go

@@ -48,6 +48,7 @@ func StartKernel(container, appDir, workspaceDir, nativeLibDir, privateDataDir,
 	go func() {
 		model.InitAppearance()
 		sql.InitDatabase(false)
+		sql.InitHistoryDatabase(false)
 		sql.SetCaseSensitive(model.Conf.Search.CaseSensitive)
 
 		model.SyncData(true, false, false)

+ 28 - 21
kernel/sql/database.go

@@ -144,6 +144,34 @@ func initDBTables() {
 	if nil != err {
 		logging.LogFatalf("create table [refs] failed: %s", err)
 	}
+}
+
+func InitHistoryDatabase(forceRebuild bool) {
+	if !forceRebuild && gulu.File.IsExist(util.HistoryDBPath) {
+		return
+	}
+
+	if nil != historyDB {
+		historyDB.Close()
+	}
+	dsn := util.HistoryDBPath + "?_journal_mode=OFF" +
+		"&_synchronous=OFF" +
+		"&_secure_delete=OFF" +
+		"&_cache_size=-20480" +
+		"&_page_size=8192" +
+		"&_busy_timeout=7000" +
+		"&_ignore_check_constraints=ON" +
+		"&_temp_store=MEMORY" +
+		"&_case_sensitive_like=OFF" +
+		"&_locking_mode=EXCLUSIVE"
+	var err error
+	historyDB, err = sql.Open("sqlite3_extended", dsn)
+	if nil != err {
+		logging.LogFatalf("create database failed: %s", err)
+	}
+	historyDB.SetMaxIdleConns(1)
+	historyDB.SetMaxOpenConns(1)
+	historyDB.SetConnMaxLifetime(365 * 24 * time.Hour)
 
 	historyDB.Exec("DROP TABLE history_fts_case_insensitive")
 	_, err = db.Exec("CREATE VIRTUAL TABLE history_fts_case_insensitive USING fts5(type UNINDEXED, op UNINDEXED, title, content, created UNINDEXED, path UNINDEXED, tokenize=\"siyuan case_insensitive\")")
@@ -201,27 +229,6 @@ func initDBConnection() {
 	db.SetMaxIdleConns(20)
 	db.SetMaxOpenConns(20)
 	db.SetConnMaxLifetime(365 * 24 * time.Hour)
-
-	if nil != historyDB {
-		historyDB.Close()
-	}
-	dsn = util.HistoryDBPath + "?_journal_mode=OFF" +
-		"&_synchronous=OFF" +
-		"&_secure_delete=OFF" +
-		"&_cache_size=-20480" +
-		"&_page_size=8192" +
-		"&_busy_timeout=7000" +
-		"&_ignore_check_constraints=ON" +
-		"&_temp_store=MEMORY" +
-		"&_case_sensitive_like=OFF" +
-		"&_locking_mode=EXCLUSIVE"
-	historyDB, err = sql.Open("sqlite3_extended", dsn)
-	if nil != err {
-		logging.LogFatalf("create database failed: %s", err)
-	}
-	historyDB.SetMaxIdleConns(1)
-	historyDB.SetMaxOpenConns(1)
-	historyDB.SetConnMaxLifetime(365 * 24 * time.Hour)
 }
 
 func SetCaseSensitive(b bool) {