enhance(rtc): transact :logseq.kv/remote-schema-version when upload/download graphs

This commit is contained in:
rcmerci
2025-01-22 16:36:34 +08:00
parent b1774950c8
commit 452c6787f2
2 changed files with 21 additions and 8 deletions

View File

@@ -124,10 +124,10 @@
(notification/show! (str "Something wrong, please try again.") :error)
(js/console.error e)))))))
;;; background task: try to restart rtc-loop when possible,
;;; triggered by `rtc-flows/rtc-try-restart-flow`
(when-not config/publishing?
(c.m/run-background-task
;;; background task: try to restart rtc-loop when possible,
;;; triggered by `rtc-flows/rtc-try-restart-flow`
::restart-rtc-task
(m/reduce
(constantly nil)

View File

@@ -146,10 +146,11 @@
:schema-version (str major-schema-version)
:graph-name remote-graph-name}))]
(if-let [graph-uuid (:graph-uuid upload-resp)]
(do
(let [schema-version (ldb/get-graph-schema-version @conn)]
(ldb/transact! conn
[{:db/ident :logseq.kv/graph-uuid :kv/value graph-uuid}
{:db/ident :logseq.kv/graph-local-tx :kv/value "0"}])
[(ldb/kv :logseq.kv/graph-uuid graph-uuid)
(ldb/kv :logseq.kv/graph-local-tx "0")
(ldb/kv :logseq.kv/remote-schema-version schema-version)])
(client-op/update-graph-uuid repo graph-uuid)
(client-op/remove-local-tx repo)
(client-op/add-all-exists-asset-as-ops repo)
@@ -204,6 +205,17 @@
(first v)
v))))))
(defn- transact-remote-schema-version!
[repo]
(when-let [conn (worker-state/get-datascript-conn repo)]
(let [db @conn]
(when-let [schema-version (:kv/value (d/entity db :logseq.kv/schema-version))]
(d/transact! conn
[(ldb/kv :logseq.kv/remote-schema-version schema-version)]
{:rtc-download-graph? true
:gen-undo-ops? false
:persist-op? false})))))
(defn- transact-block-refs!
[repo]
(when-let [conn (worker-state/get-datascript-conn repo)]
@@ -262,6 +274,7 @@
:gen-undo-ops? false
:frontend.worker.pipeline/skip-store-conn rtc-const/RTC-E2E-TEST
:persist-op? false})
(transact-remote-schema-version! repo)
(transact-block-refs! repo)))
(defn- blocks-resolve-temp-id
@@ -325,9 +338,8 @@
[schema-blocks normal-blocks] (blocks->schema-blocks+normal-blocks blocks)
tx-data (concat
(blocks-resolve-temp-id normal-blocks)
[{:db/ident :logseq.kv/graph-uuid :kv/value graph-uuid}])
init-tx-data (concat [{:db/ident :logseq.kv/db-type :kv/value "db"}]
schema-blocks)
[(ldb/kv :logseq.kv/graph-uuid graph-uuid)])
init-tx-data (cons (ldb/kv :logseq.kv/db-type "db") schema-blocks)
^js worker-obj (:worker/object @worker-state/*state)]
(m/sp
(client-op/update-local-tx repo t)
@@ -347,6 +359,7 @@
(.transact worker-obj repo tx-data {:rtc-download-graph? true
:gen-undo-ops? false
:persist-op? false} (worker-state/get-context))
(transact-remote-schema-version! repo)
(transact-block-refs! repo))))
(worker-util/post-message :add-repo {:repo repo}))))