Diesel para Rust: guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es Diesel y para qué sirve?

\n\n

Diesel es una potente, segura y extensible biblioteca ORM (Object-Relational Mapping) para el lenguaje de programación Rust. Proporciona una forma tiposegura de interactuar con bases de datos relacionales como PostgreSQL, MySQL y SQLite. A diferencia de muchos otros ORM, Diesel no utiliza magia ni reflexión en tiempo de ejecución. En su lugar, genera todo el código necesario en tiempo de compilación, lo que garantiza que sus consultas sean correctas y no provoquen errores en tiempo de ejecución.

\n\n

Las principales razones para usar Diesel:

\n
    \n
  • Tiposeguridad: Los errores en las consultas SQL (por ejemplo, nombre de columna incorrecto o desajuste de tipos) se detectan en tiempo de compilación, no en producción.
  • \n
  • Rendimiento: Diesel genera código altamente optimizado que funciona al nivel de las consultas SQL escritas a mano.
  • \n
  • Extensibilidad: Puede agregar fácilmente soporte para nuevos tipos de datos, operadores y funciones.
  • \n
  • Migraciones: El sistema de migraciones integrado permite gestionar el esquema de la base de datos como código.
  • \n
  • Seguridad: Diesel escapa automáticamente los parámetros de las consultas, previniendo inyecciones SQL.
  • \n
\n\n

Diesel es ideal para proyectos donde la confiabilidad, el rendimiento y la seguridad de los datos son importantes. Se utiliza ampliamente en aplicaciones web, servicios API, herramientas de procesamiento de datos y cualquier otro proyecto Rust que requiera interacción con bases de datos.

\n\n

Instalación de Diesel

\n\n

La instalación de Diesel consta de dos partes: agregar la biblioteca al proyecto e instalar la herramienta CLI para trabajar con migraciones.

\n\n

1. Agregar a Cargo.toml

\n

Abra el archivo Cargo.toml de su proyecto y agregue las dependencias. Seleccione el backend de base de datos correspondiente (o varios):

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

2. Instalación de CLI (Command Line Interface)

\n

La herramienta CLI diesel_cli se utiliza para crear y ejecutar migraciones. Instálela a través de cargo:

\n\n
# Para PostgreSQL\ncargo install diesel_cli --no-default-features --features postgres\n\n# Para MySQL\ncargo install diesel_cli --no-default-features --features mysql\n\n# Para SQLite\ncargo install diesel_cli --no-default-features --features sqlite\n\n# Para todos los backends\ncargo install diesel_cli\n
\n\n

3. Configuración de la conexión

\n

Cree un archivo .env en la raíz del proyecto para almacenar la cadena de conexión:

\n\n
DATABASE_URL=postgres://usuario:contraseña@localhost/diesel_demo\n
\n\n

Luego inicialice Diesel en su proyecto:

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

Este comando creará el archivo diesel.toml, la carpeta migrations e intentará crear la base de datos si no existe.

\n\n

Inicio rápido con ejemplo de código

\n\n

Vamos a crear una aplicación simple para gestionar usuarios.

\n\n

1. Creación de una migración

\n

Creemos la tabla users:

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

Edite los archivos de migración:

\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

Aplique la migración:

\n\n

Recommendations