🌱 Uso de Factories y Seeders

🌱 Uso de Factories y Seeders

Genera datos de prueba de forma rápida y segura

Las factories y los seeders en Laravel facilitan la creación de datos de prueba. Útiles para poblar la base de datos durante el desarrollo, pruebas o demostraciones. En esta lección aprenderás a crear factories, seeders y a ejecutar los comandos para poblar tablas con datos ficticios.

🔧 ¿Qué es una Factory?

Una factory define cómo se generan los atributos fake de un modelo (con Faker). Se ubican en database/factories/ y facilitan la creación de instancias de modelos para tests o seeders.

Ejemplo: database/factories/UserFactory.php
 $this->faker->name(),
            'email' => $this->faker->unique()->safeEmail(),
            'email_verified_at' => now(),
            'password' => bcrypt('password'), // contraseña por defecto para pruebas
            'remember_token' => Str::random(10),
        ];
    }
}
?>
      

📦 ¿Qué es un Seeder?

Un seeder es una clase que inserta datos en la base de datos. Normalmente usa factories para crear muchos registros de forma sencilla. Se ubican en database/seeders/.

Ejemplo: database/seeders/UsersTableSeeder.php
count(50)->create();
    }
}
?>
      

⚙️ Comandos útiles

  • php artisan make:factory NombreFactory --model=Model — Crear una factory asociada a un modelo.
  • php artisan make:seeder NombreSeeder — Crear un seeder.
  • php artisan db:seed --class=UsersTableSeeder — Ejecutar un seeder concreto.
  • php artisan migrate --seed — Ejecutar migraciones y seeders automáticamente.
  • php artisan migrate:fresh --seed — Borrar todas las tablas, migrar y seedear (útil en desarrollo).
Comando: crear factory
php artisan make:factory UserFactory --model=User
      

🎛️ Ejemplo visual: simular un seeder en la página

Aquí puedes simular la ejecución de un seeder para ver cómo quedarían los datos en una tabla. (Esto es una simulación visual: los datos no afectan tu base real).

✅ Buenas prácticas

  • No uses datos reales en seeders públicos (passwords, emails reales).
  • Usa factories para generar datos coherentes y repetibles.
  • Si necesitas datos determinísticos para tests, fija semillas (seed) o usa métodos que acepten un estado conocido.
  • Evita ejecutar migrate:fresh --seed en entornos de producción.

Publicar un comentario

0 Comentarios