Inicio » Blog » Laravel

22 agosto, 2021

Ejecutar migraciones en Laravel

En esta publicación te enseñaremos sobre comandos que necesitas saber para trabajar con migraciones.

Suscríbete a nuestro canal en Youtube

Suscríbirse

Si viste nuestra publicación sobre las migraciones, recordarás que te recomendamos el uso de php artisan migrate:refresh, pero este comando de artisan no es el único que te ayudará a volver a ejecutar tus migraciones. En esta publicación te enseñaremos sobre comandos que necesitas saber para trabajar con migraciones.

Primeramente aclaremos algo importante, cuando ejecutas el comando “php artisan migrate” por primera vez se creará en tu base de datos (previamente configurada en el archivo .env) una tabla llamada: “migrations” en la que se registrara el lote (batch) en el que se ejecutan las migraciones, es decir que la primera vez que corres el comando se registraran en esa tabla las migraciones con el lote 1, cuando lo hagas por segunda vez con el lote 2; y así sucesivamente. 

corriendo artisan migrate

¿Por qué Laravel crea una tabla “migrations”?

La idea tras esta tabla es mantener un registro de que y en qué orden se ejecutaron cada una de las migraciones que hayas escrito en: Database/migrations, pero…¿Para qué? pues es simple, para poder revertir las acciones ya hechas desde un determinado lote, y hay muchos comandos Artisan diferentes que se apoyan en esta tabla para funcionar, los cuales veremos a continuación.

¿Qué hace el comando “php artisan migrate:rollback”?

Empecemos por el primero, este comando revertirá, las últimas migraciones hechas, según el lote con el que estén registradas en la tabla “migraciones”, es decir se hará un rollback, en todas las migraciones que tenga un lote mayor. De esta manera puedes borrar las tablas que creaste en el último “php artisan migrate” que ejecutaste.

corriendo migrate:rollback

¿Qué hace el comando “php artisan migrate:reset”?

Si se da el caso de que quieras ignorar el lote con el que fueron registradas las migraciones que ejecutaste en la tabla migrations, puedes usar el comando migrate:reset para revertir todas las migraciones de tu aplicación; es decir se borrarán todas tablas sin excepción. 

corriendo migrate:reset

Bien, imaginemos que hicimos un cambio a un fichero de migraciones que teníamos, agregandole más columnas a la tabla, y demás; volver a ejecutar “php artisan migrate” no hará que esos cambios se reflejen en nuestra base de datos, lo que debemos hacer para ver los cambios es borrar la migración existente y volverla a crear. Hasta ahora sabemos que podemos revertir el último lote de migraciones que corrimos, pero luego de ello tendríamos que obligatoriamente volver a correr el “php artisan migrate”, para esta situación tenemos el comando “php artisan migrate:refresh”.

¿Qué hace el comando “php artisan migrate:refresh”?

Este comando se encarga de hacer dos acciones en uno, primero revertirá todas tus migraciones como si de un “php artisan migrate:rollback” se tratará y luego las volverá a crear funcionando a la vez como un “php artisan migrate”. 

De esta forma si se da el caso de que le hayas hecho cambios a tus migraciones, este comando borrará las tablas para volverlas a crear aplicando cualquier cambio que hayas hecho. Puede que el cambio en cuestión solo aplique a una tabla, pero aun así este comando las borrará todas y las volverá a crear, esto si bien puede parecer contraproducente, es un proceso bastante rápido y en mi opinión no amerita tener que estar usando otros comandos para solo correr una migración en particular, pero recuerda que este comando, migrate:rollback y migrate:reset son comandos destructivos, por lo que al borrar las tablas, también se borrarán los registros en ellas; por ello asegúrate de correrlas solo en entornos de prueba, nunca en producción (a menos a que sepas lo que estás haciendo). Si necesitas data de prueba puedes ejecutar semillas dentro de tus migraciones, también tenemos una publicación de semillas en Codea.

Recuerda que siempre puedes consultar la documentación, para más información acerca del tema. 
 


Leido 6534 veces

Compartir link del tutorial con tus amigos


Laravel 9 Página Web para Negocio Laravel 9 Página Web para Negocio

Curso Laravel 9 Avanzado Desarrollo Web Administrable para negocio

Descarga del código fuente

USD 10.00

Aprende más sobre Laravel

Cursos de programación

Codea Codea App

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú

© Todos los derechos reservados Codea App | ...de frente al código!!! | 2020 - 2023