enhance(rtc): update remote-schema-version

This commit is contained in:
rcmerci
2025-03-02 21:33:34 +08:00
committed by Tienson Qin
parent c3e6043ad2
commit bd14a8c6e4
2 changed files with 23 additions and 9 deletions

View File

@@ -158,6 +158,24 @@
ws-state (assoc :ws-state ws-state)))
(m/reductions {} nil ws-state-flow)))
(defn- add-migration-client-ops!
[repo db server-schema-version]
(when server-schema-version
(let [client-schema-version (ldb/get-graph-schema-version db)
added-ops (r.migrate/add-migration-client-ops! repo db server-schema-version client-schema-version)]
(when (seq added-ops)
(log/info :add-migration-client-ops
{:repo repo
:server-schema-version server-schema-version
:client-schema-version client-schema-version})))))
(defn- update-remote-schema-version!
[conn server-schema-version]
(when server-schema-version
(d/transact! conn [(ldb/kv :logseq.kv/remote-schema-version server-schema-version)]
{:gen-undo-ops? false
:persist-op? false})))
(defonce ^:private *rtc-lock (atom nil))
(defn- holding-rtc-lock
"Use this fn to prevent multiple rtc-loops at same time.
@@ -216,13 +234,8 @@
;; init run to open a ws
(m/? get-ws-create-task)
(started-dfv true)
(when @*server-schema-version
(let [client-schema-version (ldb/get-graph-schema-version @conn)]
(log/info :add-migration-client-ops
{:repo repo
:server-schema-version @*server-schema-version
:client-schema-version client-schema-version})
(r.migrate/add-migration-client-ops! repo @conn @*server-schema-version client-schema-version)))
(update-remote-schema-version! conn @*server-schema-version)
(add-migration-client-ops! repo @conn @*server-schema-version)
(reset! *assets-sync-loop-canceler
(c.m/run-task assets-sync-loop-task :assets-sync-loop-task))
(->>

View File

@@ -28,7 +28,7 @@
(let [property-ks (mapcat :properties migrate-updates)
new-property-entites (keep (fn [k] (d/entity db k)) property-ks)
client-ops (vec (gen-client-op/generate-rtc-ops-from-property-entities new-property-entites))
max-t (apply max (map second client-ops))]
max-t (apply max 0 (map second client-ops))]
(conj client-ops
[:update-kv-value
max-t
@@ -41,4 +41,5 @@
(when-let [ops (not-empty
(some->> (server-client-schema-verion->migrations server-schema-version client-schema-version)
(migration-updates->client-ops db client-schema-version)))]
(client-op/add-ops! repo ops)))
(client-op/add-ops! repo ops)
ops))