Taller en directo con suscriptores de Web Reactiva para conocer las características principales de Prisma.
ㅤ
Prisma es un ORM (Object-Relational Mapping) de código abierto basado en JavaScript/TypeScript que permite a los desarrolladores interactuar con bases de datos de manera más eficiente y segura. Algunas de sus principales características son:
-
Tipado seguro: Prisma utiliza tipos de datos estáticos para evitar errores de tipo en tiempo de ejecución y mejorar la integridad de los datos.
-
Sintaxis intuitiva: La sintaxis de Prisma es fácil de leer y escribir, lo que facilita su uso y reduce el tiempo de desarrollo.
-
Generación de consultas eficientes: Prisma genera consultas SQL optimizadas automáticamente, lo que mejora el rendimiento y reduce la complejidad del código.
-
Migraciones de esquema: Prisma permite a los desarrolladores modificar el esquema de la base de datos sin tener que escribir código SQL manualmente.
-
Compatibilidad multiplataforma: Prisma es compatible con varias bases de datos populares, como MySQL, PostgreSQL y SQLite, así como otras noSQL como MongoDB.
👉 ¿Qué es un ORM? En 7 minutos
- Dedicar algo más de 60 minutos a aprender las bases de la librería
- Tener la posibilidad de preguntar dudas en directo
- Poner las manos sobre el teclado y sacar medio c*ulo fuera de la silla
¿Dónde me apunto? Basta con ser suscriptor/a premium de Web Reactiva
ㅤ
- La sesión es el jueves 16 de Marzo de 2023 a las 19:00 CET
- El ponente (Dani) irá explicando conceptos y proponiendo ejercicios que estarán en este repositorio
- Cada asistente podrá resolverlos en su propio ordenador.
- Es OBLIGADO tener a punto los requisitos para empezar el taller (leer aquí abajo)
- Realizaremos ejercicios prácticos, en este caso no construiremos una aplicación completa ㅤ
- Sintaxis básica del ORM
- Cliente para realizar consultas
- Migraciones ㅤ
ㅤ
Para ser más ágiles te propongo unos sencillos pasos para tener todo a punto en tu ordenador antes de comenzar el taller.
⏰ 15 minutos.
Prisma trabaja sobre JavaScript o TypeScript con lo que es conveniente tener conocimientos de uno de estos lenguajes. También conviene tener conocimientos básicos de bases de datos.
ㅤ ㅤ
Usaremos Visual Studio Code para la explicación.
👉 Prisma tiene un Playground que no es 100% configurable pero puede ayudarte en el aprendizaje.
👀 Cuenta con una extensa colección de ejemplos en prisma-examples
ㅤ ㅤ
En cualquiera de las alternativas:
- Comprueba que la base de datos es accesible (para no tener problemas con permisos, certificados…)
- 👀 Ten las credenciales listas para los siguientes pasos
Aquí tenemos varias alternativas:
A. Opción cómoda
Si tu sistema es compatible con SQLite, no tendrás que hacer nada ya que Prisma podrá encargarse por ti de generar la base de datos.
B. Opción pro
Si te es fácil crear una base de datos en local, hazlo antes de la sesión y comprueba que tienes todo listo.
Recomendamos PostgreSQL o MySQL (MariaDB). MongoDB no va a ser el objetivo de este taller, por lo que no te recomiendo usarlo.
👉 Lista completa de bases de datos soportadas
C. Opción nube
Puedes crear una base de datos Postgres de forma gratuita y en la nube en servicios como Railway o Supabase.
ㅤ
Creamos el proyecto con el código mínimo para tenerlo todo funcionando.
mkdir workshop-prisma
cd workshop-prisma
Inicializamos el proyecto:
npm init -y
npm install ts-node @types/node --save-dev
👉 Usaremos TypeScript, si no lo tienes instalado globalmente (tsc
) hazlo en el proyecto con npm install typescript --save-dev
.
Inicializamos TypeScript:
npx tsc --init
Instalamos el Prisma Client:
npm install --save-dev @prisma/client
ㅤ
Ahora inicializamos el schema
de Prisma.
Atento a este paso:
- Si vas a usar SQLite
npx prisma init --datasource-provider sqlite
- Con cualquier otro proveedor, adapta el comando (en este ejemplo MySQL)
npx prisma init --datasource-provider mysql
Esto creará dos cosas:
- Un fichero en
prisma/schema.prisma
donde estarán nuestra configuración de Prisma - Un fichero
.env
donde aparece la variableDATABASE\_URL
. Si has optado por la opción 2 debes completar la información de acceso en ese lugar. (Ayuda)
Por último vamos a comprobar que todo funciona:
Añade estas lineas al final de prisma/schema.prisma
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
}
En consola ejecuta esto:
npx prisma generate
Y luego la migración (ya veremos que es esto) para que se genere en tu base de datos tablas y campos:
npx prisma migrate dev --name init
Si ha ido todo bien tendrás este mensaje en pantalla:
Environment variables loaded from .env
Prisma schema loaded from prisma/schema.prisma
Datasource "db": SQLite database "dev.db" at "file:./dev.db"
Applying migration `20230314194438_init`
The following migration(s) have been created and applied from new schema changes:
¡Estas listo/a para empezar! 🥳
Vete al primer paso ex01