瀏覽代碼

fix: create default pages for db-based graphs

Tienson Qin 2 年之前
父節點
當前提交
9071320868
共有 2 個文件被更改,包括 18 次插入8 次删除
  1. 15 6
      deps/db/src/logseq/db.cljs
  2. 3 2
      src/main/frontend/db/conn.cljs

+ 15 - 6
deps/db/src/logseq/db.cljs

@@ -4,13 +4,22 @@
             [logseq.db.schema :as db-schema]
             [datascript.core :as d]))
 
+(defn create-default-pages!
+  [db-conn]
+  (when-not (d/entity @db-conn [:block/name "card"])
+    (d/transact! db-conn
+      (concat
+       [{:block/name "card"
+         :block/original-name "card"
+         :block/uuid (d/squuid)}
+        {:schema/version db-schema/version}]
+       default-db/built-in-pages))))
+
 (defn start-conn
   "Create datascript conn with schema and default data"
-  []
+  [& {:keys [create-default-pages?]
+      :or {create-default-pages? true}}]
   (let [db-conn (d/create-conn (db-schema/get-schema))]
-    (d/transact! db-conn [{:schema/version db-schema/version}
-                          {:block/name "card"
-                           :block/original-name "card"
-                           :block/uuid (d/squuid)}])
-    (d/transact! db-conn default-db/built-in-pages)
+    (when create-default-pages?
+      (create-default-pages? db-conn))
     db-conn))

+ 3 - 2
src/main/frontend/db/conn.cljs

@@ -78,10 +78,11 @@
    (start! repo {}))
   ([repo {:keys [listen-handler]}]
    (let [db-name (datascript-db repo)
-         db-conn (ldb/start-conn)]
+         db-conn (ldb/start-conn :create-default-pages? false)]
      (swap! conns assoc db-name db-conn)
      (when listen-handler
-       (listen-handler repo)))))
+       (listen-handler repo))
+     (ldb/create-default-pages! db-conn))))
 
 (defn destroy-all!
   []