Преглед изворни кода

enhance: rebuild search index when prepare failed

Tienson Qin пре 2 година
родитељ
комит
245008dc26
2 измењених фајлова са 10 додато и 1 уклоњено
  1. 4 1
      src/electron/electron/search.cljs
  2. 6 0
      src/main/electron/listener.cljs

+ 4 - 1
src/electron/electron/search.cljs

@@ -6,7 +6,8 @@
             [clojure.string :as string]
             [clojure.string :as string]
             ["electron" :refer [app]]
             ["electron" :refer [app]]
             [electron.logger :as logger]
             [electron.logger :as logger]
-            [medley.core :as medley]))
+            [medley.core :as medley]
+            [electron.utils :as utils]))
 
 
 (defonce databases (atom nil))
 (defonce databases (atom nil))
 
 
@@ -36,8 +37,10 @@
     (try
     (try
       (.prepare db sql)
       (.prepare db sql)
       (catch :default e
       (catch :default e
+        (logger/error (str "SQLite prepare failed: " e ": " db-name))
         ;; case 1: vtable constructor failed: blocks_fts https://github.com/logseq/logseq/issues/7467
         ;; case 1: vtable constructor failed: blocks_fts https://github.com/logseq/logseq/issues/7467
         (delete-db! db-name)
         (delete-db! db-name)
+        (utils/send-to-renderer "rebuildSearchIndice" {})
         (throw e)))))
         (throw e)))))
 
 
 (defn add-blocks-fts-triggers!
 (defn add-blocks-fts-triggers!

+ 6 - 0
src/main/electron/listener.cljs

@@ -17,6 +17,7 @@
             [frontend.handler.route :as route-handler]
             [frontend.handler.route :as route-handler]
             [frontend.handler.ui :as ui-handler]
             [frontend.handler.ui :as ui-handler]
             [frontend.handler.user :as user]
             [frontend.handler.user :as user]
+            [frontend.handler.search :as search-handler]
             [frontend.state :as state]
             [frontend.state :as state]
             [frontend.ui :as ui]
             [frontend.ui :as ui]
             [logseq.common.path :as path]
             [logseq.common.path :as path]
@@ -76,6 +77,11 @@
                    (let [repo (bean/->clj data)]
                    (let [repo (bean/->clj data)]
                      (repo-handler/remove-repo! repo))))
                      (repo-handler/remove-repo! repo))))
 
 
+  (safe-api-call "rebuildSearchIndice"
+                 (fn [_data]
+                   (prn "Rebuild search indices")
+                   (search-handler/rebuild-indices!)))
+
   (safe-api-call "setGitUsernameAndEmail"
   (safe-api-call "setGitUsernameAndEmail"
                  (fn []
                  (fn []
                    (state/pub-event! [:modal/set-git-username-and-email])))
                    (state/pub-event! [:modal/set-git-username-and-email])))