mirror of
https://github.com/penpot/penpot.git
synced 2026-09-12 15:09:38 +00:00
✨ Improve rollback handlong on db ns
This commit is contained in:
parent
997441eff3
commit
f73ce6572c
@ -517,9 +517,11 @@
|
|||||||
|
|
||||||
(defn rollback!
|
(defn rollback!
|
||||||
([conn]
|
([conn]
|
||||||
(let [^Connection conn (get-connection conn)]
|
(if (and (map? conn) (::savepoint conn))
|
||||||
(l/trc :hint "explicit rollback requested")
|
(rollback! conn (::savepoint conn))
|
||||||
(.rollback conn)))
|
(let [^Connection conn (get-connection conn)]
|
||||||
|
(l/trc :hint "explicit rollback requested")
|
||||||
|
(.rollback conn))))
|
||||||
([conn ^Savepoint sp]
|
([conn ^Savepoint sp]
|
||||||
(let [^Connection conn (get-connection conn)]
|
(let [^Connection conn (get-connection conn)]
|
||||||
(l/trc :hint "explicit rollback requested (savepoint)")
|
(l/trc :hint "explicit rollback requested (savepoint)")
|
||||||
@ -538,8 +540,13 @@
|
|||||||
(let [conn (::conn system)
|
(let [conn (::conn system)
|
||||||
sp (savepoint conn)]
|
sp (savepoint conn)]
|
||||||
(try
|
(try
|
||||||
(let [result (apply f system params)]
|
(let [system' (-> system
|
||||||
(release! conn sp)
|
(assoc ::savepoint sp)
|
||||||
|
(dissoc ::rollback))
|
||||||
|
result (apply f system' params)]
|
||||||
|
(if (::rollback system)
|
||||||
|
(rollback! conn sp)
|
||||||
|
(release! conn sp))
|
||||||
result)
|
result)
|
||||||
(catch Throwable cause
|
(catch Throwable cause
|
||||||
(.rollback ^Connection conn ^Savepoint sp)
|
(.rollback ^Connection conn ^Savepoint sp)
|
||||||
@ -547,8 +554,10 @@
|
|||||||
|
|
||||||
(::pool system)
|
(::pool system)
|
||||||
(with-atomic [conn (::pool system)]
|
(with-atomic [conn (::pool system)]
|
||||||
(let [system (assoc system ::conn conn)
|
(let [system' (-> system
|
||||||
result (apply f system params)]
|
(assoc ::conn conn)
|
||||||
|
(dissoc ::rollback))
|
||||||
|
result (apply f system' params)]
|
||||||
(when (::rollback system)
|
(when (::rollback system)
|
||||||
(rollback! conn))
|
(rollback! conn))
|
||||||
result))
|
result))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user