I’m happy to announce PostgresORM.jl, a Julia ORM for PostgreSQL.
This package was developed to help us create Julia based web applications.
Before this public release, it has been used in production for over a year in various projects and in particular in two large web applications of our clients that are critical to them.
This to say that it covers quite a lot of use cases but not any possible use case for now.
It features the following:
CRUD functions
- ‘Create’ functions:
create_entity!
,create_in_bulk_using_copy
- ‘Retrieve’ functions:
retrieve_entity
,retrieve_one_entity
,execute_plain_query
,execute_query_and_handle_result
- ‘Update’ functions:
update_entity!
,update_vector_property!
- ‘Delete’ functions:
delete_entity
,delete_entity_alike
Reverse engineering
There is a reverse enginnering function generate_julia_code
that creates the Julia structs, mappings and enums from the PostgreSQL database
Tracking of modifications
This can be activated on a per-class basis. It will serialize the changes of the instances in the designated ‘modifications’ table.
Handling of non trivial use-cases
- Composed primary keys
- Mutable composite types can be used as ID property