Diesel pour Rust : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce que Diesel et pourquoi en a-t-on besoin ?

\n\n

Diesel est une bibliothèque ORM (Object-Relational Mapping) puissante, sûre et extensible pour le langage de programmation Rust. Elle offre un moyen type-safe d'interagir avec des bases de données relationnelles telles que PostgreSQL, MySQL et SQLite. Contrairement à de nombreuses autres ORM, Diesel n'utilise pas de magie ou de réflexion à l'exécution. Au lieu de cela, il génère tout le code nécessaire lors de la compilation, garantissant que vos requêtes sont correctes et ne provoqueront pas d'erreurs à l'exécution.

\n\n

Les principales raisons d'utiliser Diesel :

\n
    \n
  • Sécurité des types : Les erreurs dans les requêtes SQL (par exemple, un nom de colonne incorrect ou une incompatibilité de types) sont détectées à la compilation, et non en production.
  • \n
  • Performance : Diesel génère un code hautement optimisé qui fonctionne au niveau des requêtes SQL écrites à la main.
  • \n
  • Extensibilité : Vous pouvez facilement ajouter la prise en charge de nouveaux types de données, opérateurs et fonctions.
  • \n
  • Migrations : Un système de migration intégré vous permet de gérer le schéma de la base de données comme du code.
  • \n
  • Sécurité : Diesel échappe automatiquement les paramètres des requêtes, empêchant les injections SQL.
  • \n
\n\n

Diesel est idéal pour les projets où la fiabilité, la performance et la sécurité des données sont importantes. Il est largement utilisé dans les applications web, les services API, les outils de traitement de données et tout autre projet Rust nécessitant une interaction avec des bases de données.

\n\n

Installation de Diesel

\n\n

L'installation de Diesel comprend deux parties : l'ajout de la bibliothèque au projet et l'installation de l'outil CLI pour travailler avec les migrations.

\n\n

1. Ajout dans Cargo.toml

\n

Ouvrez le fichier Cargo.toml de votre projet et ajoutez les dépendances. Choisissez le backend de base de données approprié (ou plusieurs) :

\n\n
[dependencies]\ndiesel = { version = "2.1", features = ["postgres"] }  # Pour PostgreSQL\n# diesel = { version = "2.1", features = ["mysql"] }   # Pour MySQL\n# diesel = { version = "2.1", features = ["sqlite"] }  # Pour SQLite\n
\n\n

2. Installation de l'interface en ligne de commande (CLI)

\n

L'outil CLI diesel_cli est utilisé pour créer et exécuter des migrations. Installez-le via cargo :

\n\n
# Pour PostgreSQL\ncargo install diesel_cli --no-default-features --features postgres\n\n# Pour MySQL\ncargo install diesel_cli --no-default-features --features mysql\n\n# Pour SQLite\ncargo install diesel_cli --no-default-features --features sqlite\n\n# Pour tous les backends\ncargo install diesel_cli\n
\n\n

3. Configuration de la connexion

\n

Créez un fichier .env à la racine du projet pour stocker la chaîne de connexion :

\n\n
DATABASE_URL=postgres://username:password@localhost/diesel_demo\n
\n\n

Ensuite, initialisez Diesel dans votre projet :

\n\n
diesel setup\n
\n\n

Cette commande créera un fichier diesel.toml, un dossier migrations et tentera de créer la base de données si elle n'existe pas.

\n\n

Démarrage rapide avec un exemple de code

\n\n

Créons une application simple pour gérer les utilisateurs.

\n\n

1. Création d'une migration

\n

Créons la table users :

\n\n
diesel migration generate create_users\n
\n\n

Modifiez les fichiers de migration :

\n\n

up.sql :

\n
CREATE TABLE users (\n    id SERIAL PRIMARY KEY,\n    name VARCHAR NOT NULL,\n    email VARCHAR NOT NULL UNIQUE,\n    age INTEGER NOT NULL DEFAULT 0,\n    created_at TIMESTAMP NOT NULL DEFAULT NOW()\n);\n
\n\n

down.sql :

\n
DROP TABLE users;\n
\n\n

Appliquez la migration :

\n\n

Recommendations