Skip to content

Instantly share code, notes, and snippets.

@tgk
Created November 21, 2012 10:01
Show Gist options
  • Save tgk/4124077 to your computer and use it in GitHub Desktop.
Save tgk/4124077 to your computer and use it in GitHub Desktop.
Adding schema to database (not connection)
(use '[datomic.api :only [q db] :as d])
(def uri "datomic:mem://schema-test")
(d/delete-database uri)
(d/create-database uri)
(def conn (d/connect uri))
(def schema-tx
[{:db/id (d/tempid :db.part/db)
:db/ident :person/name
:db/valueType :db.type/string
:db/cardinality :db.cardinality/one
:db.install/_attribute :db.part/db}])
@(d/transact conn schema-tx)
(defn latest-transaction-time []
(ffirst
(reverse (sort (q '[:find ?when :where [_ :db/txInstant ?when]]
(db conn))))))
(def before (latest-transaction-time))
(def migrate-schema-tx
[{:db/id (d/tempid :db.part/db)
:db/ident :person/debt
:db/valueType :db.type/long
:db/cardinality :db.cardinality/one
:db.install/_attribute :db.part/db}])
(let [db (d/as-of (db conn) before)]
(d/with db migrate-schema-tx))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment