Qu'est-ce que Diesel et pourquoi en a-t-on besoin ?
\n\nDiesel 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\nLes 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
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\nInstallation de Diesel
\n\nL'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\n1. Ajout dans Cargo.toml
\nOuvrez le fichier Cargo.toml de votre projet et ajoutez les dépendances. Choisissez le backend de base de données approprié (ou plusieurs) :
[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\n2. Installation de l'interface en ligne de commande (CLI)
\nL'outil CLI diesel_cli est utilisé pour créer et exécuter des migrations. Installez-le via cargo :
# 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\n3. Configuration de la connexion
\nCréez un fichier .env à la racine du projet pour stocker la chaîne de connexion :
DATABASE_URL=postgres://username:password@localhost/diesel_demo\n\n\nEnsuite, initialisez Diesel dans votre projet :
\n\ndiesel setup\n\n\nCette 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.
Démarrage rapide avec un exemple de code
\n\nCréons une application simple pour gérer les utilisateurs.
\n\n1. Création d'une migration
\nCréons la table users :
diesel migration generate create_users\n\n\nModifiez les fichiers de migration :
\n\nup.sql :
\nCREATE 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\ndown.sql :
\nDROP TABLE users;\n\n\nAppliquez la migration :
\n\n