Los seeders en Laravel son una forma de inicializar tu base de datos con datos de prueba o básicos para tu aplicación. Esto resulta muy útil cuando se está desarrollando una nueva funcionalidad o se despliega un proyecto en un entorno de producción y se necesitan datos predefinidos.
Gracias a los seeders, podemos rellenar tablas con la información necesaria sin tener que introducirla manualmente. En lugar de usar un archivo SQL gigante (o peor aún, introducir datos uno a uno), con Laravel Seeders podemos automatizar y personalizar este proceso.
A lo largo de este artículo, te enseñaré cómo crear y ejecutar seeders de manera correcta, ofreciéndote ejemplos prácticos y enlazando con otras guías útiles:
Facilitan la generación de datos de prueba: No necesitas crear manualmente registros.
Estandarizan el contenido inicial: Ideal para proyectos donde siempre requieres ciertos datos base, como roles de usuario o configuraciones iniciales.
Automatizan la inserción de datos: Se integran perfectamente con el flujo de desarrollo, sobre todo junto a las migraciones.
Para crear un seeder, utiliza el siguiente comando en la terminal:
php artisan make:seeder NombreDelSeeder
Esto generará un archivo dentro de la carpeta database/seeders
(en versiones anteriores a Laravel 8, se encontraba en database/seeds
). Este archivo contendrá la clase del seeder, por ejemplo:
Para ejecutar todos tus seeders de golpe, basta con el siguiente comando:
php artisan db:seed
Laravel ejecutará la clase DatabaseSeeder
(o la que hayas configurado como principal) que, a su vez, se encarga de llamar a los demás seeders.
Si quieres ejecutar un seeder en concreto, usa la opción --class
, por ejemplo:
php artisan db:seed --class=NombreDelSeeder
users
Consejo: En Laravel también puedes usar factories junto con seeders para crear datos falsos de manera más realista, especialmente si utilizas la librería Faker o la nueva funcionalidad de Laravel 9+ (que integra Faker en el Core).
categories
con datos por defectoCon este seeder, nos aseguramos de que la tabla categories siempre tenga sus categorías base en todos los entornos (desarrollo, testing, producción, etc.).
A veces, es más conveniente manejar archivos SQL externos, especialmente si se trata de volúmenes grandes de datos o scripts complejos. Para conocer cómo integrar archivos SQL en tus seeders, te recomiendo revisar esta guía:
Seeds en Laravel con archivos SQL
En ese artículo se explica cómo cargar archivos .sql
desde el seeder, leer su contenido e insertarlo directamente en la base de datos mediante queries nativas.
Las migraciones son un paso esencial para definir la estructura de tu base de datos, mientras que los seeders se encargan de poblarla con datos. Es conveniente separar ambas funcionalidades de manera clara en tu proyecto:
Migraciones: Crean, actualizan o eliminan tablas y columnas.
Seeds: Insertan datos en las tablas.
Si te interesa entender con más detalle la diferencia y la relación entre ambas, aquí tienes una lectura recomendada:
Migraciones y seeds en Laravel: la forma correcta
Usa factories: Para generar datos ficticios de manera dinámica y realista.
Separa la responsabilidad: Crea un seeder por tabla o por bloque de funcionalidades.
Mantén tu DatabaseSeeder ordenado: Registra de forma clara el orden de ejecución de cada seeder.
Reutiliza lógica: Si tienes funciones comunes (por ejemplo, para encriptar contraseñas o generar tokens), centralízalas en un helper o en el mismo seeder si no se utiliza en más lugares.
Asegúrate de no duplicar datos: Si ejecutas un seeder más de una vez, ten en cuenta la posibilidad de duplicar registros si no has tomado medidas para evitarlos (por ejemplo, usando firstOrCreate o validando antes de insertar).
Los seeders son una herramienta indispensable en cualquier proyecto Laravel. Hacen posible la creación y población de datos de manera rápida y fiable, reduciendo el trabajo manual y la posibilidad de errores. Ya sea que estés iniciando un proyecto o quieras mantener datos de ejemplo actualizados, los seeders te facilitarán enormemente la tarea.
Ahora que conoces cómo funcionan y has visto algunos ejemplos prácticos, ¡es momento de poner manos a la obra y crear tus propios seeders!
Recuerda:
Seeds en Laravel con archivos SQL te guiará si deseas usar archivos SQL externos.
Migraciones y seeds en Laravel: la forma correcta profundiza sobre cómo encajar los seeds con tus migraciones.
No te pierdas nuestra ruta de Laravel 11, donde exploramos las funciones más recientes del framework, prácticas avanzadas y consejos para optimizar tus proyectos. ¡Te esperamos allí para que lleves tus aplicaciones al siguiente nivel!
Cursosdesarrolloweb es una plataforma educativa con cursos y tutoriales en texto y vídeo.
Términos y condiciones Política de privacidad Términos y condiciones para afiliados Formulario de contacto
Copyright 2025 © Todos los derechos reservados.