| Crates.io | miniorm-example-transactions |
| lib.rs | miniorm-example-transactions |
| version | 0.3.0 |
| created_at | 2024-03-15 17:54:54.816747+00 |
| updated_at | 2024-03-15 18:30:17.509986+00 |
| description | a *very* simple ORM built on top of sqlx |
| homepage | https://github.com/meuter/miniorm-rs |
| repository | https://github.com/meuter/miniorm-rs |
| max_upload_size | |
| id | 1174998 |
| size | 61,142 |
The miniorm crate provides a very simple
ORM
on top of sqlx.
sqlx already provides a
FromRow trait
that can be derived automatically in order to convert a row from the
database into an object. Howver, there is no corresponding ToRow macro
that would allow convert an object back into a row to be inserted into
the database.
This is where miniorm comes in. It provides a trait Schema
that can also be automatically derived to describe the schema
of the table that should be used for a given entity (i.e. struct).
Any struct that implements the FromRow and Schema traits can be used
to create a CrudStore that provide the so-called "CRUD" operations:
At the moment, miniorm only supports the postgres backend. Other backends
could be provided in the future.
use sqlx::FromRow;
use miniorm::Schema;
#[derive(Debug, Clone, Eq, PartialEq, FromRow, Schema)]
struct Todo {
#[column(TEXT NOT NULL)]
description: String,
#[column(BOOLEAN NOT NULL DEFAULT false)]
done: bool,
}
For more complete examples, see:
JSONB column
using serde_json.