From e25a41abd746f21337df34fb6e9dadecc4b790f4 Mon Sep 17 00:00:00 2001 From: Tienson Qin Date: Wed, 27 May 2026 18:30:51 +0800 Subject: [PATCH] fix: export scalar property values --- deps/db/src/logseq/db/sqlite/export.cljs | 14 ++++++++------ deps/db/test/logseq/db/sqlite/export_test.cljs | 15 +++++++++++++++ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/deps/db/src/logseq/db/sqlite/export.cljs b/deps/db/src/logseq/db/sqlite/export.cljs index f8b74028e7..1d4babb93a 100644 --- a/deps/db/src/logseq/db/sqlite/export.cljs +++ b/deps/db/src/logseq/db/sqlite/export.cljs @@ -41,12 +41,14 @@ (defn- referenced-property-value-contents [db property] - (->> (d/datoms db :avet (:db/ident property)) - (keep (fn [datom] - (some->> (:v datom) - (d/entity db) - property-value-content))) - set)) + (if (= :db.type/ref (:db/valueType property)) + (->> (d/datoms db :avet (:db/ident property)) + (keep (fn [datom] + (some->> (:v datom) + (d/entity db) + property-value-content))) + set) + #{})) (defn- closed-values-for-export [db property] diff --git a/deps/db/test/logseq/db/sqlite/export_test.cljs b/deps/db/test/logseq/db/sqlite/export_test.cljs index 5c3998b74a..7a584372fa 100644 --- a/deps/db/test/logseq/db/sqlite/export_test.cljs +++ b/deps/db/test/logseq/db/sqlite/export_test.cljs @@ -590,6 +590,21 @@ (is (= [{:value "tldraw" :uuid closed-value-uuid}] (get-in export-edn [:properties property-id :build/closed-values]))))) +(deftest graph-export-ignores-scalar-values-when-finding-referenced-closed-values + (let [property-id :user.property/datetime + conn (db-test/create-conn-with-import-map + {:properties {property-id {:logseq.property/type :datetime}} + :pages-and-blocks [{:page {:block/title "page1"} + :blocks [{:block/title "b1" + :build/properties {property-id 1779841453610}}]}]}) + export-edn (sqlite-export/build-export @conn {:export-type :graph}) + validation (sqlite-export/validate-export export-edn)] + (is (nil? (:error validation))) + (is (= {:logseq.property/type :datetime + :db/cardinality :db.cardinality/one + :block/title "datetime"} + (get-in export-edn [:properties property-id]))))) + (deftest import-view-blocks (let [original-data ;; Test a mix of page and block types