gungnir
gungnir copied to clipboard
A fully featured, data-driven database library for Clojure.
## TODO - [x] Setup Github actions - [x] Update version to 0.0.2-SNAPSHOT - [x] https://github.com/kwrooijen/gungnir/issues/34
```clojure [:map {:has-many {:app/clients {:model :client}}} [:app/id {:primary-key true} uuid?] [:app/name [:string {:min 1}]]] [:map {:belongs-to {:client/app-id {:model :app}}} [:client/id {:primary-key true} uuid?] [:client/app-id uuid?]] (-> (q/select :app/*) (q/all! :app))...
```clojure (-> (q/select :%count.*) (q/from :app) (q/all!)) ;; ERROR: {:type :malli.core/invalid-schema, :data {:schema nil}} ``` The reason this breaks is because the default row builder expects rows to be returned...
Collection of things that still need to be documented. query.md - [ ] gungnir.query.insert! - [ ] gungnir.query.update!
Currently Gungnir assumes all primary keys are generated through postgres. There should be an option to create it ourselves (in the case of `save!` Gungnir update, instead of insert). Maybe...
Currently using schemas doesn't work. e.g. `:table "foo.bar"` will break the `qualifier-builder` function (among other things, possibly).
Currently the model namespace keeps track of registered models and creates maps for "quick" mapping (e.g. mapping a model field to table column). This is mainly for performance benefits. https://github.com/kwrooijen/gungnir/blob/54fa3b8083c21d52e3c2990ef04cf4a63a1ad8b9/src/cljc/gungnir/model.cljc#L12-L17...
Gungnir is currently a single library (and `gungnir.ui`), but it could be separated into three parts. ## Model / Changeset All the `cljc` files are regarding the model and changeset...
It would be nice to check the model structure during registration. Also things like relations (`:has-one`, `:has-many` `:belongs-to`). And fail with a readable error. Currently if you make a typo...
To help track what postgres errors would be good to add default exception handlers for I've created this ticket. All postgres errors are here: https://www.postgresql.org/docs/current/errcodes-appendix.html - [ ] `42703 |...