Popular o banco de dados com informações de teste é uma etapa essencial no desenvolvimento de aplicações. No Laravel, os Seeders e Factories são recursos poderosos que permitem criar dados fictícios de forma rápida, organizada e reutilizável. Neste guia completo, você vai aprender como utilizá-los em conjunto com a biblioteca Faker para acelerar o desenvolvimento da sua aplicação.
O que são Seeders e Factories?
Antes de colocar a mão na massa, é importante entender o papel de cada um:
Seeders
Os seeders são classes responsáveis por inserir dados no banco de dados. Eles são úteis para criar registros iniciais, como perfis de usuários, permissões, configurações do sistema ou qualquer outro tipo de dado necessário para iniciar a aplicação.
Factories
As factories, por sua vez, definem como gerar dados fictícios (fake) para os modelos do seu sistema. Elas são ideais para criar grandes volumes de dados de teste, como listas de usuários, produtos ou postagens, com informações aleatórias realistas.
Por que Usar Seeders e Factories?
- Rapidez no desenvolvimento: você não precisa inserir dados manualmente via SQL ou por interfaces administrativas.
- Ambientes consistentes: facilita a criação de ambientes de testes padronizados.
- Simulação realista: gera dados com aparência real usando a biblioteca Faker.
- Testes automatizados mais eficazes: dados de teste são criados dinamicamente para cada execução.
Criando uma Factory no Laravel
Vamos supor que você tenha um model User. Para criar uma factory associada a ele, execute o seguinte comando:
php artisan make:factory UserFactory --model=User
Isso criará um arquivo em database/factories/UserFactory.php.
Exemplo básico de uma factory:
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
class UserFactory extends Factory
{
public function definition(): array
{
return [
'name' => $this->faker->name(),
'email' => $this->faker->unique()->safeEmail(),
'email_verified_at' => now(),
'password' => bcrypt('password'), // senha padrão
'remember_token' => Str::random(10),
];
}
}
Essa definição diz como gerar um usuário com dados fictícios.
Criando um Seeder
Agora vamos criar um seeder para popular o banco com usuários. Use:
php artisan make:seeder UserSeeder
Abra o arquivo database/seeders/UserSeeder.php e edite como no exemplo abaixo:
use App\Models\User;
use Illuminate\Database\Seeder;
class UserSeeder extends Seeder
{
public function run(): void
{
User::factory()->count(50)->create(); // Cria 50 usuários fake
}
}
Executando os Seeders
Antes de executar os seeders, é importante registrá-los no arquivo DatabaseSeeder.php:
public function run(): void
{
$this->call([
UserSeeder::class,
]);
}
Depois disso, basta rodar o comando:
php artisan db:seed
Se quiser resetar e popular tudo do zero:
php artisan migrate:fresh --seed
Como Criar Dados com Relacionamentos
Factories também podem lidar com relacionamentos. Por exemplo, se você tiver um Post que pertence a um User:
Post::factory()
->count(10)
->for(User::factory()) // Cria um usuário para cada post
->create();
Dicas Extras
- Use state() nas factories para criar variações específicas de dados.
- Combine seeders para criar um cenário completo da aplicação.
- Use o ambiente de desenvolvimento para evitar executar seeders em produção.
Conclusão
Seeders e Factories são recursos essenciais no Laravel que facilitam a geração de dados fictícios para desenvolvimento e testes. Ao dominá-los, você acelera seu fluxo de trabalho, simula cenários reais com facilidade e garante uma base de dados consistente durante todo o ciclo de vida do projeto.
Comece agora a aplicar esse conhecimento em seus projetos Laravel e experimente o ganho de produtividade que essas ferramentas proporcionam.
Gostou do conteúdo? Salve este artigo nos seus favoritos e compartilhe com outros devs que usam Laravel. Aproveite e confira outros tutoriais sobre desenvolvimento backend no nosso blog!
🔥 Construa seus projetos com a melhor infraestrutura e ainda apoie o DevsBrasil!
Na Hostinger, você encontra hospedagem rápida, segura e com suporte top de linha — ideal para desenvolvedores e empreendedores digitais.
💡 Use o nosso link exclusivo do DevsBrasil e garanta:
✅ Descontos especiais nos planos de hospedagem, e-mail profissional, VPS e criador de sites com IA
✅ Ferramentas otimizadas para performance, com ótimo custo-benefício
✅ Apoio direto à nossa comunidade e ao nosso conteúdo gratuito 💚
👉 Acesse agora com nosso link exclusivo e aproveite os benefícios!