Database seeding is the process of populating a database with initial data, which is important during development, testing, and the initial setup of an application. Typically, developers seed their databases with dummy data; however, there are times when real data from a production database is necessary. The Laravel Seeder Generator, created by Andre Haykal Rachman, is a package designed to assist in generating Laravel seeder files using real data from your database.
Installation
Install this package via Composer:
composer require --dev tyghaykal/laravel-seed-generator
After installation, you can generate a seeder using the following command:
php artisan seed:generate --model-mode --models=Your\Model
Note: If you need to specify multiple Models, separate them with a comma.
Several options are available for customizing the data included in your seeder file. For example, you can filter the data using a --where
option:
php artisan seed:generate --model-mode --models=Your\Model --where=field,type,value
If you want to include specific records based on their id
, you can use:
php artisan seed:generate --model-mode --models=Your\Model --ids="1,2,3"
Note: This option can only be used with a single model.
Other available options include --where-in
, --where-not-in
, --order-by
, --fields
, --relations
, --without-relations
, and more.
In addition to the --model-mode
, you can also generate seeders based on tables by using the --table-mode
option. For example:
php artisan seed:generate --table-mode --tables=your_table_name
To specify multiple tables, separate them with commas.
You can filter data for your seeder using options similar to those for Models.
Executing any of these commands will generate your seeder in the Laravel database/seeders
directory. However, you can change the location of the generated seeder file by using the --output
option.
To learn more about this package, view the source code on GitHub.