Video Summary and Transcription
Drizzle es un ORM de TypeScript que aprovecha el conocimiento de SQL, es rápido y tiene su propio ecosistema. Gestiona el esquema de la base de datos y admite declaraciones preparadas para un rendimiento óptimo. Drizzle proporciona un conjunto completo de herramientas, incluyendo Drizzle Studio y ejecutores de consultas. El ecosistema incluye integración con GraphQL y herramientas creadas por la comunidad.
1. Introducción a Drizzle
Drizzle es un ORM de TypeScript que aprovecha tu conocimiento de SQL, utiliza TypeScript de principio a fin y tiene tanto una API CRUD similar a SQL como una API relacional. Funciona con todas las principales bases de datos y proveedores de la nube, es rápido y tiene su propio ecosistema. Todo lo que escribes con Drizzle está en TypeScript, no se requiere ningún lenguaje adicional. Si conoces SQL, conoces Drizzle. Administra el esquema de tu base de datos por ti.
Hola, soy Dan, soy cofundador del equipo de Drizzle. Y hoy voy a hablar sobre el ORM de Drizzle. Entonces, ¿qué es Drizzle? Básicamente es como una pequeña lluvia. Es una especie de condición climática, ¿verdad? Y por pura casualidad, también es un ORM de TypeScript. Así que hablemos de eso. Fuimos superados en 2007 y luego nuevamente en 2008, y luego perdimos ante Eloquent incluso antes de que existiéramos. Como puedes ver, ha sido un viaje difícil, pero de todos modos, ¿qué es Drizzle en realidad esta vez?
Como dije, Drizzle es un ORM de TypeScript que tiene varias características únicas en comparación con otros ORMs. En primer lugar, aprovecha tu conocimiento de SQL en lugar de obstruirlo. También utiliza TypeScript de principio a fin, por lo que solo necesitarás escribir código en TypeScript y nada más. Tiene tanto una API CRUD similar a SQL como una API relacional para datos relacionales complejos. Funciona con todas las principales bases de datos y proveedores de la nube. Es bastante rápido en comparación con ejecutar SQL sin procesar. Y tiene su propio ecosistema, que incluye una herramienta de gestión de migraciones, un visor de datos y mucho más. Así que vamos a sumergirnos.
Drizzle está completamente escrito en TypeScript. Fue diseñado teniendo en cuenta TypeScript y lo aprovecha al máximo. Todo lo que escribes con Drizzle, desde el esquema hasta las consultas, se reescribe en TypeScript. No hay ningún lenguaje adicional que necesites aprender primero. No hay un paso de compilación en cada cambio de código. Todo es dinámico y familiar. Es posible que hayas notado que la definición de la tabla en la diapositiva anterior se parece mucho a SQL. Y eso es a propósito. Toda la filosofía de Drizzle es que si conoces SQL, conoces Drizzle. Todas las API de consultas se asemejan estrechamente a sus contrapartes en SQL. Incluso no necesitas aprender una nueva API. Simplemente escribes SQL como estás acostumbrado, solo en TypeScript. Y el resultado siempre es predecible. No necesitas adivinar qué consulta se ejecutará en la base de datos. Es exactamente lo que has escrito, y el resultado siempre es completamente seguro en cuanto a tipos. Drizzle no solo te permite escribir SQL en TypeScript, también puede administrar el esquema de tu base de datos por ti.
2. DrizzleKit y Rendimiento
Drizzle viene con una herramienta de línea de comandos llamada DrizzleKit que genera migraciones basadas en cambios de esquema. Reconoce casos comunes como el cambio de nombre de columnas. Drizzle es un envoltorio delgado alrededor de SQL, minimizando la sobrecarga. Admite declaraciones preparadas para un rendimiento óptimo. La API relacional permite realizar consultas convenientes en datos relacionales complejos, proporcionando una sintaxis simple pero potente y manteniendo un rendimiento óptimo.
Viene con una herramienta de línea de comandos llamada DrizzleKit, que, entre otras cosas, puede generar las migraciones basadas en los cambios de esquema. Todo lo que tienes que hacer es ejecutar DrizzleKit generate, y calculará las diferencias que has realizado en el esquema y generará una migración SQL. También es lo suficientemente inteligente como para reconocer algunos casos comunes, como el cambio de nombre de una columna, por ejemplo.
¿Y ahora, es Drizzle rápido? Bueno, no exactamente. Verás, la cosa es que SQL ya es bastante rápido por sí solo. Así que todo lo que tenemos que hacer es no ralentizarlo. Drizzle intenta ser un envoltorio delgado alrededor de SQL y hace la menor cantidad de cosas posible además de simplemente ejecutar la consulta. Por lo tanto, su sobrecarga en comparación con la ejecución de SQL es mínima. Siempre hemos construido Drizzle teniendo en cuenta el rendimiento. Por lo tanto, también tiene soporte para declaraciones preparadas, algo que realmente no vimos implementado en otros ORMs a nuestro alcance. Con declaraciones preparadas, puedes reducir aún más la sobrecarga para lograr un rendimiento óptimo.
Ahora, hablemos un poco sobre la API relacional. Su objetivo principal es consultar datos relacionales complejos, como relaciones uno a muchos, por ejemplo, en un formato conveniente. Entonces, en este ejemplo, ciertamente puedes obtener los mismos datos utilizando consultas SQL básicas con uniones y luego agregarlos en código para obtener el mismo resultado. Pero eso puede no ser tan conveniente de escribir. Por otro lado, con las consultas relacionales, tienes una sintaxis simple pero potente para consultar tus datos relacionales sin mucho problema. Ahora tienes múltiples oportunidades. Puedes tener un control total sobre tus consultas para ejecutar las declaraciones SQL exactas que necesitas, y puedes obtener fácilmente datos relacionales de cualquier complejidad sin comprometer el rendimiento. Esto se debe a que cada consulta relacional, sin importar su tamaño, siempre se transforma en una única declaración SQL, lo que resulta en exactamente una ida y vuelta a la base de datos.
3. Drizzle Ecosystem
Drizzle ofrece un conjunto completo de herramientas para tu base de datos, incluyendo Drizzle Studio para la manipulación de la interfaz de usuario, compatibilidad con varias bases de datos y ejecutores de consultas integrados. Las bibliotecas complementarias mejoran la experiencia de Drizzle, con extensiones para validación y capas de compatibilidad para constructores de consultas. El ecosistema de Drizzle incluye una integración de GraphQL y una lista en crecimiento de herramientas creadas por la comunidad. Proyectos de producción como SST, Payload, T3 y Warp demuestran las capacidades de Drizzle.
De acuerdo, hemos hablado de los productos de Drizzle, ahora veamos su ecosistema. Una de las mejores características de Drizzle es que tiene como objetivo proporcionarte un conjunto completo de herramientas para tu base de datos. Una de ellas es Drizzle Studio, una herramienta de interfaz de usuario para ver y manipular el contenido de tu base de datos. Admite todas las bases de datos que Drizzle soporta, incluyendo proveedores en la nube como CloudFlare D1, Torso, Neon, AWS Aurora, Planetscale y otros. También viene con ejecutores de consultas Drizzle y SQL integrados, donde puedes probar y ejecutar tus consultas directamente en tu base de datos.
Aunque Drizzle Studio es una herramienta externa, también tenemos muchas bibliotecas complementarias que mejoran tu experiencia con Drizzle. Hemos creado extensiones para bibliotecas de validación como Zot, Valobot y Typebox. Hemos implementado capas de compatibilidad para constructores de consultas como Nex o Kisely. Una de las últimas incorporaciones al ecosistema fue una integración de GraphQL, que puedes usar para generar un servidor GraphQL completo a partir de tu esquema de Drizzle en una línea. ¡La lista sigue creciendo! Nuestra increíble comunidad también nos está ayudando mucho construyendo constantemente nuevas herramientas para el ecosistema de Drizzle.
Una de las preguntas que nos hacen con frecuencia es: ¿cuándo puedo empezar a usar Drizzle en un proyecto de producción? En lugar de convencerte, te dejaré que lo juzgues mostrándote algunos de los proyectos que ya utilizan Drizzle. SST es un marco para implementar tu infraestructura en la nube. Tiene una consola que utiliza Drizzle para todas las operaciones de la base de datos. Payload es un CMS basado en TypeScript que utiliza Drizzle internamente y expone su API a los usuarios finales. T3 es una plantilla popular de Next.js que ofrece Drizzle como una de las soluciones ORM disponibles. Warp es un mercado que tuvo más de 9 millones de visitantes en 3 meses, y está impulsado por Drizzle. AnswerOverflow, OpenStatus, Unkey, todos ellos utilizan Drizzle. Así que ya tienes la idea. Drizzle ya está impulsando muchos proyectos de producción. Bueno, ahora sé que estás completamente convencido de que deberías migrar todos tus proyectos a Drizzle. Así que déjame convencerte de lo contrario. El mayor defecto de Drizzle, si se le puede llamar así, es que aún no ha tenido un lanzamiento v1. Eso significa que todavía estamos puliendo la API, lo que puede hacer que cambie de vez en cuando. En el pasado, hemos introducido cambios que rompen la compatibilidad en casos en los que no debería haberlos. Por otro lado, estamos bastante cerca de nuestra API ideal, por lo que no habrá muchos cambios antes de la v1. Por último, hablemos de nuestros planes futuros, y tenemos muchos. En primer lugar, queremos admitir aún más dialectos SQL, como Microsoft SQL Server, MariaDB, Clickhouse, y otros. Además, aún no hemos tenido nuestro lanzamiento v1, como ya he mencionado, y esperamos tenerlo este año. Uno de los hitos principales para la v1 es la publicación de código abierto de DrizzleKit, que históricamente ha sido y actualmente es de código cerrado. Y, por supuesto, tenemos muchos planes para expandir el ecosistema de Drizzle, introduciendo aún más herramientas, productos y bibliotecas que funcionen bien con Drizzle. Bien, esto concluye mi charla. Siéntete libre de unirte a nuestra comunidad en el servidor de Discord, seguirnos en Twitter, darnos una estrella en GitHub, ¿y simplemente probar Drizzle, supongo? Gracias.
Comments