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