DEV Community

Lithe
Lithe

Posted on

Seeders in Lithe: Easily Populate Your Database

When it comes to application development, having test data available is essential. Seeders in Lithe provide an easy and efficient way to populate your database with initial or test data, allowing you to focus on your application logic. In this post, we will explore how to create and use seeders in Lithe.

What are Seeders?

Seeders are classes responsible for automatically inserting data into the database. They are especially useful during development when you need dummy data to test functionalities and application behavior. With seeders, you can ensure that your application has the necessary data without the need for manual insertions.

Creating Seeders

In Lithe, you can easily create seeders using the make:seeder command. This command generates a new seeder file in the src/database/seeders directory, where you can define the logic to insert the desired data.

Command to Create a Seeder

To create a new seeder, simply run the following command in the terminal:

php line make:seeder SeederName
Enter fullscreen mode Exit fullscreen mode

Where:

  • SeederName: is the name of the seeder to be created.

Structure of a Seeder

A seeder generated in Lithe has the following basic structure:

class SeederName
{
    public function run($db): void
    {
        // Logic to insert data into the database
    }
}
Enter fullscreen mode Exit fullscreen mode

Here, the run method is responsible for inserting the data. The $db parameter can be any type of database connection supported by Lithe, making seeders flexible for different contexts.

Example Seeder

Let’s look at an example of a seeder that creates records in the users table:

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) {
            // Logic to insert each user into the table
            $db->query("INSERT INTO users (name, email) VALUES ('{$user['name']}', '{$user['email']}')");
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

Running Seeders

After creating your seeders, you can execute them to populate your database with test data.

Running All Seeders

To run all seeders at once, use the command:

php line db:seed
Enter fullscreen mode Exit fullscreen mode

Running a Specific Seeder

If you want to run only a specific seeder, use the db:seed command with the --class option:

php line db:seed --class=SeederName
Enter fullscreen mode Exit fullscreen mode

Conclusion

Seeders are a powerful tool in Lithe for facilitating the population of your database with test data. With the simplicity of creating and running seeders, you can ensure that your application is always ready for development and testing.

Explore the features of Lithe and make the most of seeders to create high-quality PHP applications!

Top comments (3)

Collapse
 
rootasuser profile image
Windel Navales

I hope someday there will be a youtube tutorial in this framework from database connection to CRUD.

Collapse
 
lithephp profile image
Lithe

I completely agree! A YouTube tutorial that covers everything from database connection to CRUD operations would be extremely helpful. It would aid many developers in better understanding the framework and how to use it. I hope we can see something like that soon!

Collapse
 
rootasuser profile image
Windel Navales

Thank you so much for the fast response Sir/Dev.