Comparte en Facebook Twitter Google+

banner-sentencias-sql-con-migrate-pretend

Las migraciones de Laravel son la forma llevar un control de versiones de las tablas de nuestra base de datos, es decir, que con ellas usamos la programación orientada a objetos para definir las tablas sin necesidad de escribir las sentencias SQL. Pero qué pasa si queremos saber ¿Cómo se están creando las tablas de la base de datos o qué cambios se están realizando?, en el tutorial de hoy lo veremos.

Podemos ejecutar nuestras migraciones sin alterar la base de datos solo para ver las consultas SQL resultantes, y así verificar antes que se ejecuten si las migraciones estarían realizando lo que queremos, sin dañar la base de datos.

Para hacerlo al comando migrate  se le agrega la bandera --pretend  y de esta manera ver las consultas resultantes en el terminal:

Por ejemplo, suponiendo que creamos la migración para el modelo Post:

y añadimos algunos atributos a la tabla con el método up() del archivo ubicado en /database/migrations

al ejecutar php artisan migrate --pretend  Se obtiene como resultado en la misma consola:

Adicionalmente, podemos guardar en un archivo el resultado de la siguiente manera:

Esto puede ser bastante útil para ejecutar las consultas SQL en un servidor que no nos permite realizar las migraciones, como por ejemplo en los servidores compartidos en donde no tenemos acceso SSH para ejecutar comandos. Pues de esta manera el resultado obtenido con la bandera –pretend lo estaríamos usando para crear tablas o agregar los cambios a la base de datos directamente en el servidor con un sistema de manejador de base de datos como phpMyAdmin.

Por ejemplo, para nuestro caso podemos copiar y pegar la consulta así:

phpmyadmin-laravel-migrate-pretend

O también se puede usar el archivo creado anteriormente para importarlo, no sin antes editarlo para que se pueda ejecutar correctamente, es decir, eliminando el nombre de la clase de la migración y los dos puntos para solo dejar la sentencia SQL.  En caso de que sea más de una migración, se debe colocar un punto y coma al final de cada sentencia. Es decir, que nuestro archivo migration.sql quedaría de esta manera:

Espero te haya gustado este sencillo tip sobre las migraciones de Laravel. No olvides compartir en las redes sociales.

Material relacionado

Regístrate hoy en Styde y continua mejorando tus habilidades: ver planes.

Lección anterior Aplicación multi-idioma en Laravel 5.1 Lección siguiente Componentes dinámicos para formularios con Blade y Laravel