This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-02-03
Channels
- # announcements (2)
- # atom-editor (1)
- # babashka (6)
- # beginners (49)
- # calva (39)
- # clj-kondo (20)
- # clojure (41)
- # clojure-australia (1)
- # clojure-europe (33)
- # clojure-germany (8)
- # clojure-italy (2)
- # clojure-losangeles (1)
- # clojure-norway (3)
- # clojure-spec (5)
- # clojure-uk (48)
- # clojurescript (147)
- # conjure (24)
- # core-logic (1)
- # datahike (6)
- # datomic (14)
- # emacs (10)
- # events (1)
- # fulcro (11)
- # garden (1)
- # girouette (2)
- # honeysql (16)
- # jobs (3)
- # kaocha (3)
- # malli (5)
- # meander (7)
- # off-topic (49)
- # pathom (50)
- # portal (3)
- # reagent (4)
- # reitit (7)
- # rewrite-clj (3)
- # ring (3)
- # sci (4)
- # shadow-cljs (46)
- # spacemacs (10)
- # sql (3)
- # tools-deps (57)
@stuartrexking I would make schema transactions part of your deployment process, not part of the app bootup
@ghadi Is that necessary if planning for accretion and adhering to the schema growth principle? https://docs.datomic.com/cloud/best.html#plan-for-accretion
I just don’t see the benefit of doing it out of band of an app startup.
So what you are suggesting is, specific to ion app: 1. Push and deploy 2. Trigger a schema transaction (always or only when the schema has changed?)
Really what I want to know is why “I just mean: do it in a separate moment from app bootup.”
(The accretion principle still applies) If you have N nodes booting up, you have N racey processes trying to do the same work.
What I’ve seen work well is: Run tests, get a green check Transact new schema to DB Then deploy The app can presume that its schema exists in the DB - or exit if it doesn’t
The Ion sample uses an endpoint to trigger schema installation, but in a real app you’d likely have code that expects the schema to be there, along with the schema installation code, so it’s a catch 22
Thanks seems like a good approach. I’ll do that.