Fork me on GitHub
Alex Miller (Clojure team)00:03:04

It’s really a tool for testing systems, of which the database is one component


I’ve got a funny thing happening when I call a transaction function


Answer: make sure the attribute you’re reading is present on the entity. In my case, :myns/counter hadn’t ever been set on that particular entity, and that resulted in addition to nil within the db function

Petrus Theron15:03:53

Can I use d/filter for user-data privacy of present day (not historical) data? E.g. given that every user-related fact belongs to an entity that has an :entity/owner attribute set to that user's ID, can I efficiently filter out all datoms not belonging to that user? Or do I need to apply "own" these facts at the transactional level and filter by tx-meta?


The /bin/maven-install (datomic-free at least) script could do with a she-bang. Is there a place to report these things?


@kardan if you’d like an absolute path or shebang line added to the script, you could log a feature request on our “suggest a feature” portal. You can get there from your datomic account at and clicking on the “suggest a feature” link, top right.


@jaret ok cool. It was nothing huge for me, just noticed that I could not run the script. Still trying to figure out how things hang together.


A fairly simple question about the #db/fn literal: I’m trying to apply some formatting to our schema.edn file which contains one of these, and the resulting edn is unreadable. My rewrite fn is:


(defn rewrite-schema!
  (binding [*print-namespace-maps* false]
    (let [schema (into []
                       (map (fn [m]
                              (into (sorted-map)
                                    (remove (fn [[k v]]
                                              (contains? #{:db.install/_attribute :db/id} k)))
                       (edn/read-string {:readers *data-readers*}
                                        (slurp "resources/data/schema.edn")))]
      (clojure.pprint/pprint schema (io/writer "resources/data/schema.edn")))))


Is there a convenient way to have #db/fn roundtrip without evaluation?


New to the #datomic channel here... i have a 43 GB datomic db on PG storage. I run incremental backups every 15 minutes and after a ~10 days, i.e., my backup directory is at 425 GB's. Is there a way to not log garbage-collection (I have a gc job running every 3 hours btw)?


@josh.wolter are you running PG’s vacuum full pg job? It sounds like you’re backing up garbage with each backup. (seems like you knew that already). I’d also be curious to get the output from your diagnostics command:

;;Prints a map with information about a database, storage, the catalog, and peer settings:
bin/run -m datomic.integrity $DB-URI
Substitute your URI ^ for $DB-URI and ensure it is from a machine that is able to reach storage.


If you’d like you can private message me the output, or we could open a case. Just e-mail me at <mailto:[email protected]|[email protected]>.


The output from diagnostics may not be information you’d like to share over slack 🙂