Diesel für Rust: Vollständiger Leitfaden mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist Diesel und wozu wird es benötigt?

\n\n

Diesel ist eine leistungsstarke, sichere und erweiterbare ORM-Bibliothek (Object-Relational Mapping) für die Programmiersprache Rust. Sie bietet eine typsichere Möglichkeit zur Interaktion mit relationalen Datenbanken wie PostgreSQL, MySQL und SQLite. Im Gegensatz zu vielen anderen ORMs verwendet Diesel keine Magie oder Reflektion zur Laufzeit. Stattdessen generiert es den gesamten benötigten Code zur Kompilierzeit, was garantiert, dass Ihre Abfragen korrekt sind und nicht zu Laufzeitfehlern führen.

\n\n

Die Hauptgründe für die Verwendung von Diesel:

\n
    \n
  • Typsicherheit: Fehler in SQL-Abfragen (z. B. falscher Spaltenname oder Typkonflikt) werden zur Kompilierzeit erkannt, nicht in der Produktion.
  • \n
  • Leistung: Diesel generiert hochoptimierten Code, der auf dem Niveau handgeschriebener SQL-Abfragen arbeitet.
  • \n
  • Erweiterbarkeit: Sie können problemlos Unterstützung für neue Datentypen, Operatoren und Funktionen hinzufügen.
  • \n
  • Migrationen: Das integrierte Migrationssystem ermöglicht die Verwaltung des Datenbankschemas als Code.
  • \n
  • Sicherheit: Diesel maskiert automatisch Abfrageparameter und verhindert so SQL-Injection.
  • \n
\n\n

Diesel ist ideal für Projekte, bei denen Zuverlässigkeit, Leistung und Datensicherheit wichtig sind. Es wird häufig in Webanwendungen, API-Diensten, Datenverarbeitungstools und anderen Rust-Projekten verwendet, die eine Interaktion mit Datenbanken erfordern.

\n\n

Installation von Diesel

\n\n

Die Installation von Diesel besteht aus zwei Teilen: Hinzufügen der Bibliothek zum Projekt und Installieren des CLI-Tools für die Arbeit mit Migrationen.

\n\n

1. Hinzufügen zu Cargo.toml

\n

Öffnen Sie die Datei Cargo.toml Ihres Projekts und fügen Sie die Abhängigkeiten hinzu. Wählen Sie das entsprechende Datenbank-Backend (oder mehrere):

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

2. Installation der CLI (Command Line Interface)

\n

Das CLI-Tool diesel_cli wird zum Erstellen und Ausführen von Migrationen verwendet. Installieren Sie es über cargo:

\n\n
# Für PostgreSQL\ncargo install diesel_cli --no-default-features --features postgres\n\n# Für MySQL\ncargo install diesel_cli --no-default-features --features mysql\n\n# Für SQLite\ncargo install diesel_cli --no-default-features --features sqlite\n\n# Für alle Backends\ncargo install diesel_cli\n
\n\n

3. Einrichtung der Verbindung

\n

Erstellen Sie eine Datei .env im Stammverzeichnis des Projekts, um die Verbindungszeichenfolge zu speichern:

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

Initialisieren Sie dann Diesel in Ihrem Projekt:

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

Dieser Befehl erstellt die Datei diesel.toml, den Ordner migrations und versucht, die Datenbank zu erstellen, falls sie nicht existiert.

\n\n

Schnellstart mit einem Codebeispiel

\n\n

Lassen Sie uns eine einfache Anwendung zur Benutzerverwaltung erstellen.

\n\n

1. Erstellen einer Migration

\n

Erstellen wir die Tabelle users:

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

Bearbeiten Sie die Migrationsdateien:

\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

Wenden Sie die Migration an:

\n\n

Empfehlungen