Explorar el Código

update schema for new hidden page attributes

part of LOG-2854. Also update --closed-maps to use library fn
Gabriel Horner hace 2 años
padre
commit
e5e25bb403

+ 6 - 16
deps/db/script/validate_client_db.cljs

@@ -3,13 +3,12 @@
    NOTE: This script is also used in CI to confirm our db's schema is up to date"
   (:require [logseq.db.sqlite.cli :as sqlite-cli]
             [logseq.db.sqlite.db :as sqlite-db]
-            [logseq.db.frontend.schema :as db-schema]
             [logseq.db.frontend.malli-schema :as db-malli-schema]
             [datascript.core :as d]
             [clojure.string :as string]
             [nbb.core :as nbb]
-            [clojure.walk :as walk]
             [malli.core :as m]
+            [malli.util :as mu]
             [babashka.cli :as cli]
             ["path" :as node-path]
             ["os" :as os]
@@ -44,20 +43,11 @@
   "Updates the db schema to add a datascript db for property validations
    and to optionally close maps"
   [db-schema db {:keys [closed-maps]}]
-  (let [db-schema-with-property-vals (db-malli-schema/update-properties-in-schema db-schema db)]
-    (if closed-maps
-      ;; closes maps that don't have an explicit :closed option
-      (walk/postwalk (fn [e]
-                       (if (and (vector? e)
-                                (= :map (first e)))
-                         (if (map? (second e))
-                           (if (not (contains? (second e) :closed))
-                             (assoc e 1 (assoc (second e) :closed true))
-                             e)
-                           (into [:map {:closed true}] (rest e)))
-                         e))
-                     db-schema-with-property-vals)
-      db-schema-with-property-vals)))
+  (cond-> db-schema
+    true
+    (db-malli-schema/update-properties-in-schema db)
+    closed-maps
+    mu/closed-schema))
 
 (defn validate-client-db
   "Validate datascript db as a vec of entity maps"

+ 11 - 0
deps/db/src/logseq/db/frontend/malli_schema.cljs

@@ -179,11 +179,22 @@
    [true internal-property]
    [:malli.core/default user-property]])
 
+(def hidden-page
+  (vec
+   (concat
+    [:map
+     [:block/metadata #_{:optional true}
+      [:map
+       [:source-page-id :uuid]]]]
+    page-attrs
+    page-or-block-attrs)))
+
 (def page
   [:multi {:dispatch :block/type}
    [#{"property"} property-page]
    [#{"class"} class-page]
    [#{"object"} object-page]
+   [#{"hidden"} hidden-page]
    [:malli.core/default normal-page]])
 
 (def block-attrs