Novedades de Laravel 5.5

A partir de Laravel 5.5 tenemos disponible un nuevo comando de artisan para trabajar con la base de datos usando las migraciones, el cual nos ayudará a evitar problemas o conflictos en la base de datos que se presentan a menudo cuando usamos migrate:refresh luego de cambiar nuestras migraciones durante el desarrollo de una aplicación.

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

Notas

Por Clemir Rondón.

Para trabajar con este comando debemos primero crear y configurar una base de datos para la aplicación. Primero la creamos con cualquier manejador de base de datos como phpMyAdmin, Sequel Pro, etc. o simplemente desde consola por medio de MySQL.

Luego puedes configurar las credenciales en el archivo de variables de entorno .env que se encuentra en la raíz del proyecto, agregando los datos a las variables DB_DATABASE, DB_USERNAME y DB_PASSWORD.

Para crear una nueva migración ejecutamos, por ejemplo:

php artisan make:migration create_profiles_table

Esta es otra novedad que trae Laravel 5.5 pues ya no se necesita especificar el nombre de la tabla de base de datos a crear con la opción --create, siempre y cuando, el nombre de la migración tenga el patrón create_nombre_tabla_table. Así, Laravel automáticamente reconoce el nombre de la tabla a partir del nombre de la migración y nos evita tener que escribir algo como: php artisan make:migration create_profiles_table --create=profiles

Puedes mirar el Pull Request que incluye esta funcionalidad en: https://github.com/laravel/framework/pull/20032

Ahora con el nuevo comando migrate:fresh puedes volver a ejecutar las migraciones sin necesidad que Laravel ejecute el método down de cada migración (ésta es la finalidad del comando migrate:refresh), sino que simplemente elimina todas las tablas y luego vuelve a ejecutar las migraciones.  Este comando es útil para omitir los conflictos producidos por cambios en las migraciones y lo que ya está definido en la base de datos. De esta manera si estás en la fase de diseño de la base de datos ahorrarás algo del tiempo que empleabas en resolver estos conflictos (por ejemplo eliminando todas las tablas manualmente antes de re-ejecutar migrate:refresh).

Podemos además pasarle las opciones:

--database para especificarle la base de datos en la que queremos se ejecute el comando, definida en el archivo config/database.php en la clave connections

--force para forzar ejecutar el comando cuando se está en ambiente de producción.

--seed para que adicionalmente se ejecuten los seeders.

--path para indicar la ubicación de los archivos de migración.

--seeder para indicar la clase Seeder que cumple la función de ser como la clase DatabaseSeeder, es decir, que agrupa los seeder que queremos que se ejecuten.

Puedes ver el commit realizado para añadir este comando en: https://github.com/laravel/framework/commit/f6511d47

Material relacionado

Únete a la discusión

Regístrate en Styde y obtén una invitación a nuestro Slack.

Lección anterior Render Mailables en Laravel 5.5 Lección siguiente Nuevo comando make:factory en Laravel 5.5