Seeders inversos: generar seeders a partir de datos de tablas existentes
- Publicado el 01 abril, 2025
- Palabras: 190
El generador de seeders inverso es un paquete de Laravel que proporciona un método para generar un nuevo archivo de seeder basado en datos de tablas ya existentes en la base de datos.

¿Qué sucede si ya tienes datos en tu base de datos que quieres convertir en seeders? Quizás hayas usado el panel de administración de tu tienda online para crear muchos productos. Sería genial extraer los datos de la tabla de productos y convertirlos en un seeder, guardarlos en el repositorio de tu proyecto y compartirlos con tus compañeros, evitando así que tengan que crear productos manualmente como acabas de hacer.
Para eso está diseñado el paquete orangehill/iseed. Para instalarlo, ejecuta:
composer require orangehill/iseed
Después, puedes ejecutar este comando Artisan para generar un archivo de seeder que contenga todos los datos de una tabla determinada:
php artisan iseed users
¡Listo! El archivo UsersTableSeeder ya está en tu carpeta de seeders. Aunque usa una sintaxis un tanto anticuada, ¡funciona a la perfección!
<?php
namespace DatabaseSeeders;
use IlluminateDatabaseSeeder;
class UsersTableSeeder extends Seeder
{
/**
* Auto generated seed file
*
* @return void
*/
public function run()
{
DB::table('users')->delete();
DB::table('users')->insert(array (
0 =>
array (
'id' => 1,
'name' => 'John Doe',
'email' => 'johndoe@example.com',
'email_verified_at' => NULL,
'password' => '$2y$12$QYXD9hc7KAtazKjOq8IBL.e0Mm9HYlFap.wrZrK7NyPzB0qV/Q8e2',
'remember_token' => NULL,
'created_at' => '2025-03-31 08:32:49',
'updated_at' => '2025-03-31 08:32:49',
),
));
}
}
Si quieres generar seeders para múltiples tablas:
php artisan iseed products, users
#classnameprefix & classnamesuffix
Opcionalmente, puedes especificar un prefijo o sufijo para el nombre de la clase Seeder y el nombre del archivo. Esto resulta útil si deseas crear un seeder adicional para una tabla que ya tiene un seeder sin sobrescribirla.
php artisan iseed users --classnameprefix=Customized
El fichero que creará será CustomizedUsersSeeder.php
php artisan iseed users --classnamesuffix=Customizations
El fichero resultante será UsersCustomizationsSeeder.php
Consulte el repositorio de paquetes en GitHub para obtener más detalles.
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión