Просмотр исходного кода

Fix: circular dependencies again b/n deps <-> frontend

Breaks setup of deps/ and most tests
Gabriel Horner 2 лет назад
Родитель
Сommit
75ff4db4aa

+ 4 - 3
deps/db/src/logseq/db.cljs

@@ -19,9 +19,10 @@
 
 
 (defn start-conn
 (defn start-conn
   "Create datascript conn with schema and default data"
   "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))]
+  [& {:keys [create-default-pages? schema]
+      :or {create-default-pages? true
+           schema db-schema/schema}}]
+  (let [db-conn (d/create-conn schema)]
     (when create-default-pages?
     (when create-default-pages?
       (create-default-pages! db-conn))
       (create-default-pages! db-conn))
     db-conn))
     db-conn))

+ 1 - 12
deps/db/src/logseq/db/schema.cljs

@@ -1,8 +1,5 @@
 (ns logseq.db.schema
 (ns logseq.db.schema
-  "Main db schema for the Logseq app"
-  (:require [frontend.config :as config]
-            [frontend.state :as state]))
-
+  "Main db schemas for the Logseq app")
 
 
 (defonce version 2)
 (defonce version 2)
 (defonce ast-version 1)
 (defonce ast-version 1)
@@ -112,14 +109,6 @@
    schema
    schema
    {}))
    {}))
 
 
-(defn get-schema
-  ([]
-   (get-schema (state/get-current-repo)))
-  ([repo]
-   (if (config/db-based-graph? repo)
-     schema-for-db-based-graph
-     schema)))
-
 (def retract-attributes
 (def retract-attributes
   #{
   #{
     :block/refs
     :block/refs

+ 1 - 7
src/main/frontend/db.cljs

@@ -70,10 +70,4 @@
 
 
 (defn new-block-id
 (defn new-block-id
   []
   []
-  (d/squuid))
-
-(defn get-schema
-  [repo]
-  (if (config/db-based-graph? repo)
-    db-schema/schema-for-db-based-graph
-    db-schema/schema))
+  (d/squuid))

+ 9 - 1
src/main/frontend/db/conn.cljs

@@ -8,6 +8,7 @@
             [frontend.util.text :as text-util]
             [frontend.util.text :as text-util]
             [logseq.graph-parser.text :as text]
             [logseq.graph-parser.text :as text]
             [logseq.db :as ldb]
             [logseq.db :as ldb]
+            [logseq.db.schema :as db-schema]
             [logseq.graph-parser.util :as gp-util]))
             [logseq.graph-parser.util :as gp-util]))
 
 
 (defonce conns (atom {}))
 (defonce conns (atom {}))
@@ -52,6 +53,13 @@
       (str (if (util/electron?) "" config/idb-db-prefix)
       (str (if (util/electron?) "" config/idb-db-prefix)
            path))))
            path))))
 
 
+(defn get-schema
+  "Returns schema for given repo"
+  [repo]
+  (if (config/db-based-graph? repo)
+    db-schema/schema-for-db-based-graph
+    db-schema/schema))
+
 (defn get-db
 (defn get-db
   ([]
   ([]
    (get-db (state/get-current-repo) true))
    (get-db (state/get-current-repo) true))
@@ -78,7 +86,7 @@
    (start! repo {}))
    (start! repo {}))
   ([repo {:keys [listen-handler]}]
   ([repo {:keys [listen-handler]}]
    (let [db-name (datascript-db repo)
    (let [db-name (datascript-db repo)
-         db-conn (ldb/start-conn :create-default-pages? false)]
+         db-conn (ldb/start-conn :schema (get-schema repo) :create-default-pages? false)]
      (swap! conns assoc db-name db-conn)
      (swap! conns assoc db-name db-conn)
      (when listen-handler
      (when listen-handler
        (listen-handler repo))
        (listen-handler repo))

+ 2 - 2
src/main/frontend/db/restore.cljs

@@ -44,13 +44,13 @@
    stored: the text to restore from"
    stored: the text to restore from"
   [repo stored]
   [repo stored]
   (p/let [db-name (db-conn/datascript-db repo)
   (p/let [db-name (db-conn/datascript-db repo)
-          db-conn (d/create-conn (db-schema/get-schema repo))
+          db-conn (d/create-conn (db-conn/get-schema repo))
           _ (swap! db-conn/conns assoc db-name db-conn)
           _ (swap! db-conn/conns assoc db-name db-conn)
           _ (when stored
           _ (when stored
               (let [stored-db (try (db-utils/string->db stored)
               (let [stored-db (try (db-utils/string->db stored)
                                    (catch :default _e
                                    (catch :default _e
                                      (js/console.warn "Invalid graph cache")
                                      (js/console.warn "Invalid graph cache")
-                                     (d/empty-db (db-schema/get-schema repo))))
+                                     (d/empty-db (db-conn/get-schema repo))))
                     attached-db (d/db-with stored-db
                     attached-db (d/db-with stored-db
                                            default-db/built-in-pages) ;; TODO bug overriding uuids?
                                            default-db/built-in-pages) ;; TODO bug overriding uuids?
                     db (if (old-schema? attached-db)
                     db (if (old-schema? attached-db)

+ 2 - 2
src/main/frontend/publishing.cljs

@@ -4,8 +4,8 @@
   (:require [frontend.state :as state]
   (:require [frontend.state :as state]
             [datascript.core :as d]
             [datascript.core :as d]
             [frontend.db :as db]
             [frontend.db :as db]
+            [frontend.db.conn :as conn]
             [frontend.db.listener :as db-listener]
             [frontend.db.listener :as db-listener]
-            [logseq.db.schema :as db-schema]
             [rum.core :as rum]
             [rum.core :as rum]
             [frontend.handler.route :as route-handler]
             [frontend.handler.route :as route-handler]
             [frontend.page :as page]
             [frontend.page :as page]
@@ -53,7 +53,7 @@
   (state/set-current-repo! "local")
   (state/set-current-repo! "local")
   (when-let [data js/window.logseq_db]
   (when-let [data js/window.logseq_db]
     (let [data (unescape-html data)
     (let [data (unescape-html data)
-          db-conn (d/create-conn (db-schema/get-schema))
+          db-conn (d/create-conn (conn/get-schema (state/get-current-repo)))
           _ (swap! db/conns assoc "logseq-db/local" db-conn)
           _ (swap! db/conns assoc "logseq-db/local" db-conn)
           db (db/string->db data)]
           db (db/string->db data)]
       (reset! db-conn db))))
       (reset! db-conn db))))