Je souhaite utiliser une base de données Datomic sans déclencher d'effets secondaires. L'objectif est de travailler sur une version "alternative" de la base de données actuelle, et de valider les données si la création de la version alternative a réussi. Sinon, la connexion à la base de données doit rester dans son état actuel.Datomic: Comment synchroniser les datoms entre une connexion et (datomic.api/with db)?
J'ai trouvé que datomic.api/with convient bien à mon problème, mais je ne sais pas quel serait le meilleur moyen d'ajouter les datoms créés dans la version alternative à la connexion Datomic.
Voici ma procédure actuelle:
(defn operation [conn]
(let [db (d/db conn)
current-t (d/basic-t db)
new-db (create-alternative-version db)]
(d/transact conn (d/datoms (d/since new-db current-t) :eavt))))
En ce moment, je reçois l'erreur suivante:
ClassCastException datomic.db$datoms$reify__1559
cannot be cast to java.util.List datomic.api/transact
Pensez-vous que cette approche a du sens? S'il y a une meilleure solution?
J'ai également regardé l'API de synchronisation, mais cela ne semble pas adapté à cette fin.
Merci pour votre aide