gungnir.database
*datasource*
dynamic
The global Gungnir datasource. This var is set using either using the gungnir.database/set-datasource!
or gungnir.database/make-datasource!
function.
*tx-datasource*
dynamic
This variable is only set during transactions. It allows the Gungnir internals to know that a transaction is taking place.
build-datasource!
(build-datasource! ?options)
(build-datasource! url options)
The following options are supported for ?options
* DATABASE_URL - The universal database url used by services such as Heroku / Render * JDBC_DATABASE_URL - The standard Java Database Connectivity URL * HikariCP configuration map - https://github.com/tomekw/hikari-cp#configuration-options When both url
and options
are supplied: url
- DATABSE_URL or JDBC_DATABASE_URL options
- HikariCP options
close!
(close!)
(close! datasource)
Close the Hikari datasource
. If no datasource
is supplied it defaults to gungnir.database/*datasource*
.
delete!
(delete! record)
(delete! record datasource)
Delete a row from the database based on record
which can either be a namespaced map or relational atom. The row will be deleted based on it’s primary-key
. Return true
on deletion. If no match is found return false
.
exception->map
multimethod
format-error
(format-error column-k error-type)
(format-error changeset column-k error-type)
insert!
(insert! changeset)
(insert! {:changeset/keys [model errors result], :as changeset} datasource)
Insert a row based on the changeset
provided. This function assumes that the :changeset/result
key does not have a primary-key with a values. Returns the inserted row on succes. On failure return the changeset
with an updated :changeset/errors
key.
make-datasource!
(make-datasource! ?options)
(make-datasource! url options)
Same as build-datasource!
but also sets the created datasource globally.
query!
(query! form)
(query! form datasource)
Execute a query based on the HoneySQL form
and return a collection of maps. If no result is found return an empty vector.
query-1!
(query-1! form)
(query-1! form datasource)
Execute a query based on the HoneySQL form
and return a map. If no result is found return nil
.
set-datasource!
(set-datasource! datasource)
Set the datasource
to be used by Gungnir.
sql-key-from-quotes
(sql-key-from-quotes e)
try-uuid
(try-uuid ?uuid)
Try to convert ?uuid
to a java.util.UUID
if it is a string. Otherwise return ?uuid
as supplied.
update!
(update! changeset)
(update! {:changeset/keys [model errors diff origin transformed-origin], :as changeset} datasource)
Update a row based on the changeset
provided. This function assumes that the :changeset/result
key has a primary-key with a values. Returns the updated row on succes. On failure return the changeset
with an updated :changeset/errors
key.