Prisma es un ORM (mapeo relacional de objetos) moderno que facilita la interacción con bases de datos en aplicaciones Node.js y TypeScript. Una de las características más importantes de Prisma es el sistema de migración, que le permite mantener el esquema de la base de datos sincronizado con el modelo de datos de la aplicación. En esta publicación, exploraremos el flujo de trabajo de Prisma mediante migraciones.
Las migraciones son un método para controlar y aplicar cambios al esquema de la base de datos de forma sistemática y versionada. Le permiten definir cambios estructurales en la base de datos, como crear o alterar tablas, de manera incremental y reversible.
El flujo de trabajo típico con migraciones en Prisma implica los siguientes pasos:
Primero, necesitamos instalar Prisma en el proyecto e inicializarlo:
npm install @prisma/client npx prisma init
Este comando crea un directorio prisma que contiene un archivo esquema.prisma, donde definimos nuestro modelo de datos.
En el archivo esquema.prisma, definimos los modelos que representan las tablas de la base de datos. Por ejemplo, definamos un modelo Usuario:
model User { id Int @id @default(autoincrement()) email String @unique name String? }
Aquí, estamos definiendo una tabla de Usuario con columnas de identificación, correo electrónico y nombre.
Después de definir o cambiar el esquema, creamos una migración para reflejar estos cambios en la base de datos:
npx prisma migrate dev --name init
El comando migrar dev crea una nueva migración y aplica los cambios a la base de datos. El parámetro --name le permite darle a la migración un nombre descriptivo, como init en el ejemplo anterior.
Las migraciones se aplican automáticamente a la base de datos cuando usamos el comando migrar dev. Esto garantiza que la base de datos esté siempre sincronizada con el modelo de datos definido en esquema.prisma.
Si deseas aplicar migraciones en un entorno de producción, usa el comando:
npx prisma migrate deploy
Este comando aplica todas las migraciones pendientes a la base de datos de producción.
Prisma mantiene un historial de todas las migraciones aplicadas a la base de datos. Esto es útil para rastrear cambios y revertir migraciones si es necesario. Para ver el historial de migración, puedes usar:
npx prisma migrate status
Este comando muestra el estado actual de las migraciones, incluidas las que se han aplicado y las que están pendientes.
Veamos un ejemplo práctico de cómo agregar un nuevo campo al modelo Usuario y crear una migración para este cambio.
Agregue el campo al modelo de usuario en esquema.prisma:
model User { id Int @id @default(autoincrement()) email String @unique name String? birthdate DateTime? }
Crear una nueva migración:
npx prisma migrate dev --name add-birthdate-to-user
Aplicar migración:
El comando migrar dev ya aplica la migración a la base de datos. Ahora la base de datos tendrá el nuevo campo de fecha de nacimiento en la tabla Usuario.
Verificar estado migratorio:
npx prisma migrate status
Este comando mostrará que la migración de agregar fecha de nacimiento a usuario se aplicó correctamente.
El flujo de trabajo de Prisma que utiliza migraciones es una forma eficiente y segura de gestionar cambios en el esquema de la base de datos. A través de una secuencia clara de pasos (definir el esquema, crear migraciones, aplicar cambios y gestionar el historial de migraciones) es posible mantener la base de datos sincronizada con el modelo de datos de la aplicación, facilitando el desarrollo y mantenimiento del software.
Con Prisma, no solo simplifica la administración de la base de datos, sino que también obtiene una poderosa herramienta para garantizar que todos los cambios sean rastreables y reversibles, lo que contribuye a un proceso de desarrollo más sólido y ágil.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3