Seeders

Os seeders permitem que você preencha seu banco de dados com dados iniciais ou de teste. Isso é especialmente útil durante o desenvolvimento, quando você precisa de dados fictícios para testar funcionalidades e o comportamento da aplicação.

Gerando Seeders

Você pode usar o comando make:seeder para gerar um seeder de banco de dados. O novo seeder será colocado no diretório src/database/seeders do seu projeto e será armazenado com o nome especificado, por exemplo, NomeDoSeeder.php.

php line make:seeder NomeDoSeeder

Onde:

  • NomeDoSeeder: Nome do seeder a ser criado.

Estrutura de um Seeder

Um seeder é responsável por inserir dados no banco de dados. A estrutura de um seeder gerado pelo Lithe é a seguinte:

class NomeDoSeeder
{
    /**
     * Run the seeder.
     *
     * @param mixed $db A conexão de banco de dados, que pode ser de diferentes tipos.
     * @return void
     */
    public function run($db): void
    {
        // Lógica para inserir dados no banco de dados
    }
}

Aqui, o parâmetro $db pode representar qualquer tipo de conexão de banco de dados suportada pelo Lithe, seja MySQLi, PDO, ou outra implementação. Isso torna os seeders flexíveis para diferentes contextos.

Exemplo de Seeder

Aqui está um exemplo de um seeder que cria registros na tabela users:

class CreateUsersSeeder
{
    public function run($db): void
    {
        $users = [
            ['name' => 'John Doe', 'email' => 'john@example.com'],
            ['name' => 'Jane Doe', 'email' => 'jane@example.com'],
        ];

        foreach ($users as $user) {
            // Lógica para inserir cada usuário na tabela
            // Exemplo: $db->query("INSERT INTO users (name, email) VALUES ('{$user['name']}', '{$user['email']}')");
        }
    }
}

Executando Seeders

Após criar os arquivos de seeder conforme os exemplos acima, você pode executá-los para popular seu banco de dados com dados de teste.

Para executar todos os seeders, utilize o comando:

php line db:seed

Executando um Seeder Específico

Se você deseja executar um seeder específico, pode usar o comando db:seed com a opção --class:

php line db:seed --class=NomeDoSeeder

Isso executará apenas o seeder que você especificou.


Os seeders são uma ferramenta poderosa no Lithe para inserir dados iniciais em seu banco de dados. Usando os seeders, você pode garantir que sua aplicação tenha os dados necessários para testes e desenvolvimento, facilitando a manutenção e evolução do projeto. A flexibilidade dos seeders permite que você adapte a estrutura e os dados inseridos conforme suas necessidades, independentemente do tipo de conexão de banco de dados que você esteja utilizando.