diesel_versioning

Crates.iodiesel_versioning
lib.rsdiesel_versioning
version0.1.1
created_at2025-05-15 16:58:25.858715+00
updated_at2026-01-12 16:36:57.380209+00
descriptionOptimistic locking for diesel.rs
homepagehttps://github.com/frankstolle/diesel_versioning
repositoryhttps://github.com/frankstolle/diesel_versioning
max_upload_size
id1675368
size25,440
Frank (frankstolle)

documentation

https://docs.rs/diesel_versioning

README

Diesel-Versioning

Diesel-Versioning implements optimistic locking for Diesel. This is achieved by an additional field on every entity, which should be support optimistic locking.

Getting started

The entity must have implemented diesel::AsChangeset and diesel::Identifiable to implement Versioned. You can use the provided derive macro.

use diesel::AsChangeset;
use diesel::Identifiable;
use diesel_versioning::Versioned;

#[derive(AsChangeset, Identifiable, Versioned)]
#[diesel(table_name = schema::users)]
#[diesel(check_for_backend(diesel::pg::Pg))]
pub struct User {
   pub id: i32,
   #[version]
   pub version: i32,
   pub body: String,
}

Currently only integer values are supported as version field.

If you use the feature-flag async, you have to use VersionedAsync instead of Versioned.

License

Licensed under either of these:

Commit count: 5

cargo fmt