mirror of https://github.com/logseq/logseq
Merge branch 'feat/db' of https://github.com/logseq/logseq into feat/db
commit
cca239dafe
|
@ -59,7 +59,8 @@
|
|||
(println "Importing" (count files) "files ...")
|
||||
(p/do!
|
||||
(gp-exporter/import-logseq-files conn logseq-files <read-file {:notify-user prn})
|
||||
(gp-exporter/import-from-doc-files! conn doc-files <read-file import-options))))
|
||||
(gp-exporter/import-from-doc-files! conn doc-files <read-file import-options)
|
||||
(gp-exporter/import-class-properties conn conn))))
|
||||
|
||||
(defn- resolve-path
|
||||
"If relative path, resolve with $ORIGINAL_PWD"
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
[logseq.db.sqlite.util :as sqlite-util]
|
||||
[logseq.db :as ldb]
|
||||
[logseq.db.frontend.rules :as rules]
|
||||
[logseq.db.frontend.class :as db-class]
|
||||
[logseq.common.util.page-ref :as page-ref]
|
||||
[promesa.core :as p]))
|
||||
|
||||
|
@ -723,3 +724,32 @@
|
|||
:level :error
|
||||
:ex-data {:error err}})
|
||||
(edn/read-string default-config)))))
|
||||
|
||||
(defn import-class-properties
|
||||
[conn repo-or-conn]
|
||||
(let [user-classes (->> (d/q '[:find (pull ?b [:db/id :block/name])
|
||||
:where [?b :block/type "class"]] @conn)
|
||||
(map first)
|
||||
(remove #(db-class/built-in-classes (keyword (:block/name %)))))
|
||||
class-to-prop-uuids
|
||||
(->> (d/q '[:find ?t ?prop-name ?prop-uuid #_?class
|
||||
:in $ ?user-classes
|
||||
:where
|
||||
[?b :block/tags ?t]
|
||||
[?t :block/name ?class]
|
||||
[(contains? ?user-classes ?class)]
|
||||
[?b :block/properties ?bp]
|
||||
[?prop-b :block/name ?prop-name]
|
||||
[?prop-b :block/uuid ?prop-uuid]
|
||||
[(get ?bp ?prop-uuid) ?_v]]
|
||||
@conn
|
||||
(set (map :block/name user-classes)))
|
||||
(remove #(db-property/built-in-properties-keys-str (second %)))
|
||||
(reduce (fn [acc [class-id _prop-name prop-uuid]]
|
||||
(update acc class-id (fnil conj #{}) prop-uuid))
|
||||
{}))
|
||||
tx (mapv (fn [[class-id prop-ids]]
|
||||
{:db/id class-id
|
||||
:block/schema {:properties (vec prop-ids)}})
|
||||
class-to-prop-uuids)]
|
||||
(ldb/transact! repo-or-conn tx)))
|
||||
|
|
|
@ -387,6 +387,7 @@
|
|||
(async/<! (import-from-asset-files! asset-files))
|
||||
(async/<! (p->c (gp-exporter/import-from-doc-files! db-conn doc-files <read-file import-options)))
|
||||
(async/<! (p->c (import-favorites-from-config-edn! db-conn repo config-file)))
|
||||
(async/<! (p->c (gp-exporter/import-class-properties db-conn repo)))
|
||||
(log/info :import-file-graph {:msg (str "Import finished in " (/ (t/in-millis (t/interval start-time (t/now))) 1000) " seconds")})
|
||||
(state/set-state! :graph/importing nil)
|
||||
(state/set-state! :graph/importing-state nil)
|
||||
|
|
Loading…
Reference in New Issue