Tienson Qin пре 7 месеци
родитељ
комит
c07d8a6a6e

+ 2 - 2
deps/db/src/logseq/db/sqlite/build.cljs

@@ -259,7 +259,7 @@
         classes-tx (vec
                     (mapcat
                      (fn [[class-name {:build/keys [class-parent class-properties] :as class-m}]]
-                       (let [class-parent (if (coll? class-parent) class-parent [class-parent])
+                       (let [class-parent (when class-parent (if (coll? class-parent) class-parent [class-parent]))
                              db-ident (get-ident all-idents class-name)
                              new-block
                              (sqlite-util/build-new-class
@@ -285,7 +285,7 @@
                              (when class-parent
                                {:logseq.property.class/extends
                                 (or (map class-db-ids class-parent)
-                                    (if (db-malli-schema/class? class-parent)
+                                    (if (every? db-malli-schema/class? class-parent)
                                       class-parent
                                       (throw (ex-info (str "No :db/id for " class-parent) {}))))})
                              (when class-properties

+ 1 - 1
deps/db/src/logseq/db/sqlite/export.cljs

@@ -192,7 +192,7 @@
          (:logseq.property.class/extends class-ent)
          (not ((set (map :db/ident (:logseq.property.class/extends class-ent))) :logseq.class/Root)))
     (assoc :build/class-parent
-           (set (map :db/ident (:logseq.property.class/extends class-ent))))))
+           (mapv :db/ident (:logseq.property.class/extends class-ent)))))
 
 (defn- build-node-classes
   [db build-block block-tags properties]

+ 4 - 4
deps/db/test/logseq/db/sqlite/export_test.cljs

@@ -371,9 +371,9 @@
                       :user.property/node-p1 {:logseq.property/type :default}}
          :classes {:user.class/MyClass {:build/class-properties [:user.property/p1 :user.property/p2]}
                    :user.class/MyClass2 {:build/class-properties [:user.property/p2]}
-                   :user.class/ChildClass {:build/class-parent :user.class/MyClass
+                   :user.class/ChildClass {:build/class-parent [:user.class/MyClass]
                                            :build/class-properties [:user.property/p3]}
-                   :user.class/ChildClass2 {:build/class-parent :user.class/MyClass2}
+                   :user.class/ChildClass2 {:build/class-parent [:user.class/MyClass2]}
                    ;; shallow class b/c it's a property's class property
                    :user.class/NodeClass {:build/class-properties [:user.property/node-p1]}
                    :user.class/NodeClass2 {}}
@@ -486,7 +486,7 @@
                                :build/property-classes [:user.class/MyClass]}}
          :classes
          {:user.class/MyClass {:build/properties {:user.property/url "https://example.com/MyClass"}}
-          :user.class/MyClass2 {:build/class-parent :user.class/MyClass
+          :user.class/MyClass2 {:build/class-parent [:user.class/MyClass]
                                 :build/properties {:logseq.property/description "tests child class"}}}}
         conn (db-test/create-conn-with-blocks original-data)
         conn2 (db-test/create-conn)
@@ -619,7 +619,7 @@
                                 (assoc :block/alias #{[:block/uuid class-alias-uuid]}))
           :user.class/MyClassAlias {:block/uuid class-alias-uuid
                                     :build/keep-uuid? true}
-          :user.class/MyClass2 {:build/class-parent :user.class/MyClass
+          :user.class/MyClass2 {:build/class-parent [:user.class/MyClass]
                                 :block/collapsed? true
                                 :block/uuid class2-uuid
                                 :build/keep-uuid? true