mirror of
https://github.com/logseq/logseq.git
synced 2026-05-26 13:44:13 +00:00
enhance(rtc): update remote-schema-version
This commit is contained in:
@@ -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))
|
||||
(->>
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user