Skip to content


CmdrDats edited this page Mar 26, 2015 · 8 revisions


  • API Break: generate-schema signature change - now takes an opts map with :index-all? and :gen-all? instead of just a boolean for gen-all?
  • API Break: The stateful defschema, defpart, build-schema and build-parts macro's and functions have been removed.
  • API Break: field-to-datomic, schema-to-datomic and part-to-datomic have all been changed to more idiomatic names field->datomic, schema->datomic and part->datomic
  • API Break: The tempid-fn argument has been removed from all functions and d/tempid directly used.
  • Implemented :index-all? to generate-schema which flags all attributes for indexing by default.
  • Included dbfn and defdbfn macro's along with dbfns->datomic function for easily defining db functions into the schema.
  • Added datomic dev dependency and datomic-schema.schema is now requiring the datomic.api and datomic.function namespaces.
  • Implemented tests for checking that the schema generation works as expected


  • Small improvement to the generate-schema that will allow you to mix normal datomic schema in between the (schema) definitions.


  • Small bugfix release - Cardinality is not an optional part of the schema.
  • Important - The project now depends on Clojure 1.5.0 due to usage of cond->



  • Please note that the defschema and defpart used by default prior to v1.1.0 are now deprecated. The functions will continue to live on, but it's recommended that you use the schema and part macro's directly instead.

  • This is because these functions don't maintain a global state - you'll need to collect the schema yourself and pass that off to the generate-schema function. The global state is messy and doesn't allow libraries and multiple databases to work cleanly.

Clone this wiki locally
You can’t perform that action at this time.