This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-11-28
Channels
- # admin-announcements (1)
- # aleph (3)
- # bangalore-clj (4)
- # beginners (167)
- # boot (14)
- # cider (4)
- # cljs-dev (24)
- # cljsjs (21)
- # cljsrn (33)
- # clojure (214)
- # clojure-greece (2)
- # clojure-italy (2)
- # clojure-korea (16)
- # clojure-russia (29)
- # clojure-spec (31)
- # clojure-uk (86)
- # clojurescript (144)
- # core-matrix (2)
- # cursive (37)
- # datascript (5)
- # datomic (104)
- # devcards (2)
- # events (2)
- # jobs (2)
- # luminus (8)
- # midje (1)
- # nyc (4)
- # off-topic (1)
- # om (39)
- # om-next (1)
- # onyx (47)
- # perun (1)
- # planck (6)
- # proton (2)
- # re-frame (25)
- # reagent (40)
- # spacemacs (9)
- # vim (71)
- # yada (3)
ok why do they say you cannot write true row-style component upsert functions in datomic due to some limitation?
(defn upsert-rows-component [db component-key new-component]
"Given {:app.id 2, ...} and [{:app.config.key .., :app.config.value .., :app.config.app-id ..}, ..]
in database, removes all old entities under given :app.config.app-id and asserts new rows"
{:pre? (= 1 (count (distinct (map component-key new-component))))}
(concat
(->> (first new-component)
component-key
(d/q '[:find [?e ...]
:in $ ?component-key ?v
:where [?e ?component-key ?v]] db component-key)
(map (fn [e] [:db.fn/retractEntity e])))
new-component))