DEV Community

Jose Wisner Urrego Portilla
Jose Wisner Urrego Portilla

Posted on

¿Cómo truncar tus datos de prueba en Laravel 5.7?

Desde hace unos días me encuentro reforzando algunos conceptos sobre el framework Laravel (en su versión 5.7), he decidido retomar dicho marco para el desarrollo de APIs, así que decidí adquirir un curso en Udemy. En las primeras clases se abordó uno de mis conceptos favoritos de los framework de desarrollo, las migraciones. Después de hacer unas cuentas migraciones pasamos a las semillas de la API (Seeds, en ingles), una herramienta maravillosa para crear una buena base de datos para pruebas.

Es normal, que en un proceso de desarrollo continuo tengas alteraciones en tu base de datos y que, por consiguiente, debas recrear tanto la estructura de la base de datos; así como tus datos de prueba. Además, es común que tengas algunas restricciones de llaves foráneas que puedan generar algunos problemas a la hora de recrear tu base de datos.

Así que a continuación presentaré (por medio de un gist), la que para mí es la mejor forma de truncar tu base de datos, en este caso particular en mi clase administradora de semillas:

Como lo describí en el gist (con mi mediocre ingles), no deberíamos hacer uso de sentencias nativas de MySQL (o cualquier otro modelo), desde nuestro frameworks, porqué, a no ser por un caso excepcional, estaríamos limitando la capacidad del ORM de funcionar en cualquiera de los motores de base de datos soportados (en el caso de Laravel, cuenta con soporte para MySQL, SQL Server y PostgreSQL).

Espero este post (mi primero de hecho), sea de utilidad para quien se encuentre iniciándose en este maravilloso Framework. Y estaré atento a cualquier duda y, claro, cualquier futuro aporte, pues he encontrado algunas cosas interesantes en muchos cursos de Udemy.

Top comments (2)

Collapse
 
sleepyfran profile image
Fran González

Thanks for the post! I don't know what the community rules specify about it (I suppose @ben can give us some help here) but I think your post will do much more better if you used English instead of Spanish :)

Collapse
 
andres_gcarmona profile image
Andy Carmona • Edited

There is a DB::truncate() function you can use instead delete(), so if you are using MySQL the auto_increment counters resets to 0.