Crates.io | diesel_linker |
lib.rs | diesel_linker |
version | 1.1.0 |
source | src |
created_at | 2024-03-25 20:23:58.412126 |
updated_at | 2024-03-25 22:58:57.894215 |
description | A procedural macro to link Diesel models |
homepage | |
repository | https://github.com/teamflp/DieselLinker |
max_upload_size | |
id | 1185650 |
size | 13,633 |
DieselLinker
Ce guide vous montre comment utiliser la macro DieselLinker
pour faciliter la définition de relations entre les tables dans une application Rust utilisant Diesel.
Diesel
est ajouté à vos dépendances dans Cargo.toml
.DieselLinker
doit être ajoutée comme dépendance.[dependencies]
diesel = { version = "1.4", features = ["postgres"] }
diesel_linker = "0.1"
Commencez par définir vos modèles Rust qui correspondent à vos tables dans la base de données.
#[derive(Queryable)]
struct User {
pub id: i32,
pub name: String,
// autres champs...
}
#[derive(Queryable)]
struct Post {
pub id: i32,
pub user_id: i32, // Clé étrangère vers la table User
pub title: String,
// autres champs...
}
Appliquez la macro DieselLinker
à votre modèle pour définir la relation entre les tables.
One-to-Many
Si un utilisateur peut avoir plusieurs posts, vous pouvez définir cette relation comme suit :
use diesel_linker::DieselLinker;
#[derive(DieselLinker)]
#[relation(type = "one-to-many", table1 = "users", table2 = "posts", column1 = "id", column2 = "user_id")]
struct User {
// Définitions de champs...
}
#[derive(DieselLinker)]
#[relation(type = "many-to-one", table1 = "users", table2 = "posts", column1 = "id", column2 = "user_id")]
struct Post {
// Définitions de champs...
}
Cette syntaxe indique que la table users
a une relation "one-to-many
" avec la table posts
, où column1 (id dans users)
est la clé primaire et column2 (user_id dans posts)
est la clé étrangère.
Après avoir appliqué la macro à vos structures, compilez votre projet pour vous assurer que la macro fonctionne comme attendu.
cargo build
Effectuez également des tests pour confirmer que les relations sont correctement gérées et que vous pouvez effectuer des opérations liées à la base de données selon vos besoins.
La macro DieselLinker vise à simplifier la définition des relations entre les tables dans les applications Diesel. En suivant les étapes ci-dessus, vous pouvez facilement définir et gérer les relations entre vos modèles de base de données.