enhance: add more useful counts to validation script

helpful for checking a new/imported db graph hasn't regressed
pull/11049/head
Gabriel Horner 2024-02-26 11:52:46 -05:00
parent d8f41f22c2
commit 5d915de2e2
1 changed files with 9 additions and 4 deletions

View File

@ -16,7 +16,7 @@
(defn validate-client-db (defn validate-client-db
"Validate datascript db as a vec of entity maps" "Validate datascript db as a vec of entity maps"
[db ent-maps* {:keys [verbose group-errors closed-maps]}] [db ent-maps* {:keys [verbose group-errors closed-maps]}]
(let [ent-maps (vec (db-malli-schema/update-properties-in-ents (vals ent-maps*))) (let [ent-maps (vec (db-malli-schema/update-properties-in-ents ent-maps*))
schema (db-validate/update-schema db-malli-schema/DB db {:closed-schema? closed-maps})] schema (db-validate/update-schema db-malli-schema/DB db {:closed-schema? closed-maps})]
(if-let [errors (->> ent-maps (if-let [errors (->> ent-maps
(m/explain schema) (m/explain schema)
@ -62,10 +62,15 @@
(println "Error: For graph" (str (pr-str graph-dir) ":") (str e)) (println "Error: For graph" (str (pr-str graph-dir) ":") (str e))
(js/process.exit 1))) (js/process.exit 1)))
datoms (d/datoms @conn :eavt) datoms (d/datoms @conn :eavt)
ent-maps (db-malli-schema/datoms->entity-maps datoms)] ent-maps (vals (db-malli-schema/datoms->entity-maps datoms))]
(println "Read graph" (str db-name " with " (count datoms) " datoms, " (println "Read graph" (str db-name " with " (count datoms) " datoms, "
(count ent-maps) " entities and " (count ent-maps) " entities, "
(count (mapcat :block/properties (vals ent-maps))) " properties")) (count (filter :block/name ent-maps)) " pages, "
(count (filter :block/content ent-maps)) " blocks, "
(count (filter #(contains? (:block/type %) "class") ent-maps)) " classes, "
(count (filter #(seq (:block/tags %)) ent-maps)) " objects, "
(count (filter #(contains? (:block/type %) "property") ent-maps)) " properties and "
(count (mapcat :block/properties ent-maps)) " property values"))
(validate-client-db @conn ent-maps options))) (validate-client-db @conn ent-maps options)))
(defn -main [argv] (defn -main [argv]