Instala Diesel ORM en tu proyecto Rust

Resumen

Conectar Rust con una base de datos se vuelve sencillo cuando usas Diesel ORM junto a PostgreSQL. Aquí aprendes a crear un proyecto desde cero, instalar las dependencias correctas y dejar tu entorno listo para trabajar con migraciones, ideal para quienes empiezan en backend con Rust.

¿Cómo crear un proyecto en Rust para usar Diesel?

Todo arranca desde la terminal. Con cargo new blog_platzi generas la estructura base del proyecto en Rust [0:21]. Ese comando crea la carpeta y el archivo Cargo.toml, donde vas a declarar las dependencias que Diesel necesita para funcionar.

El tutorial oficial de Diesel sirve como guía paso a paso, así que copia las dependencias sugeridas y pégalas en tu Cargo.toml. Con eso, tu proyecto ya sabe que va a hablar con una base de datos relacional.

¿Qué es Cargo en Rust? Es el gestor de paquetes y compilador oficial de Rust. Con un solo comando crea proyectos, descarga dependencias y ejecuta tu código.

¿Qué necesitas instalar antes del cliente de Diesel?

Antes de instalar el cliente, tu sistema debe tener PostgreSQL funcionando. Si trabajas en Mac, Homebrew resuelve esto en segundos [0:45]. Luego instalas libpq, que es la librería que permite a Rust comunicarse con Postgres, y al final ejecutas el comando que instala el CLI de Diesel.

En Mac el flujo se ve así:

  • Instala PostgreSQL con brew install postgresql.
  • Instala libpq con Homebrew.
  • Ejecuta el comando que instala el diesel_cli.

Si usas Windows o Linux, los pasos cambian un poco, así que revisa la clase de texto que acompaña este recurso. Ahí también encuentras los errores frecuentes que suelen aparecer durante la instalación.

¿Por qué necesitas un archivo .env en tu proyecto?

El archivo .env guarda las llaves sensibles, como la URL de tu base de datos [1:40]. Esto es clave porque hay datos que nunca debes subir a Git, y las credenciales de conexión son uno de esos casos.

Dentro del .env declaras una variable llamada DATABASE_URL con la cadena de conexión a tu base de datos. Diesel leerá esta variable automáticamente cuando ejecute sus comandos.

¿Cómo conectar Heroku Postgres con tu proyecto Rust?

Heroku ofrece bases de datos PostgreSQL gratuitas, perfectas para empezar sin gastar [2:00]. Crea una nueva app llamada blog_platzi, ve a Resources y busca Heroku Postgres como add-on.

Una vez agregado, entra a Settings y haz clic en Reveal Config Vars. Ahí aparece la URL completa de la base de datos, lista para copiar y pegar en tu .env. Con esto, tu proyecto local ya apunta a una base de datos en la nube.

¿Qué es DATABASE_URL? Es la cadena de conexión que indica a tu aplicación dónde vive la base de datos, qué usuario usar y con qué contraseña autenticarse.

¿Qué hace el comando diesel setup?

Desde la carpeta del proyecto, ejecutas diesel setup [2:50]. Este comando:

  • Verifica la conexión con la base de datos definida en .env.
  • Crea la carpeta migrations para registrar cambios futuros.
  • Genera la base de datos si aún no existe.

Si algo falla aquí, casi siempre es porque la URL del .env está mal o porque PostgreSQL no está corriendo. Esos errores también están documentados en la clase de texto.

¿Qué son las migraciones en Diesel y por qué importan?

Las migraciones son la forma en que los ORMs llevan una trazabilidad de los cambios en la base de datos [3:15]. Cada vez que agregas una tabla, modificas una columna o eliminas un campo, queda registrado en un archivo versionado.

Al ejecutar diesel migration generate create_post, Diesel crea una carpeta con dos archivos:

  • up.sql: contiene el SQL que aplica el cambio, por ejemplo, crear la tabla posts.
  • down.sql: contiene el SQL que revierte ese cambio, eliminando la tabla o restaurando la columna.

Esta dualidad te permite avanzar o retroceder en el tiempo dentro del esquema de tu base de datos. Si una migración rompe algo en producción, ejecutas el down y vuelves al estado anterior sin drama.

¿Qué diferencia hay entre up.sql y down.sql? El archivo up aplica un cambio en la base de datos, mientras que down lo revierte. Juntos te dan control total sobre el historial del esquema.

Con Diesel instalado, PostgreSQL conectado y la primera migración creada, tu proyecto en Rust ya tiene los cimientos para empezar a modelar datos reales. ¿Te animas a contarme qué base de datos vas a usar tú en tu primer proyecto con Diesel?