Download the PHP package ranium/laravel-seedonce without Composer
On this page you can find all versions of the php package ranium/laravel-seedonce. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download ranium/laravel-seedonce
More information about ranium/laravel-seedonce
Files in ranium/laravel-seedonce
Package laravel-seedonce
Short Description Laravel package to run seeders only once
License MIT
Informations about the package laravel-seedonce
Laravel SeedOnce
This package works similar to php artisan migrate
. When using this package, each seeder is seeded only once even if you run php artisan db:seed
multiple times (on each deployment).
Why was this package developed?
The purpose of this package is to make it easier for the developers to run seeders when working in teams and to run seeders during automated deployments. One doesn't need to remember which seeders have already been executed and which are pending. All this is handled by this package.
Assumption
This package assumes that you use one seeder (ex.DatabaseSeeder
) class as the main/parent for running all other seeders. This main seeder class should never seed any data directly on its own. It should only be used to run other seeder classes.
Installation
Use composer to install the package.
Optionally, publish the package configuration file. Default config should work well in most of the cases.
After the package is installed by composer, run the migrations to create a table which will hold the seeder information.
Note: This will create a table named seeders
in your database. If you want to change this table's name, then you have to publish the package's config (above step) and modify the value of table
in config/seedonce.php
.
Configuration
Once you have published the configuration file, you can edit it to suit your needs. Configuration options are as follows:
table
: This is the name of the table that will hold the details of the seeders that have been executed. The default value is seeders which should work in most of the cases.database_seeder
: This is the name of the class that seeds all other seeders. In most of the cases this will be DatabaseSeeder which is the default value. Make sure to change this if you use a different class as the entry point to seed all other seeders.folder_seeder
: This is the folder of contains the seeders files laravel < 8 use seeds and laravel >= 8 use seeders
Usage
Use the Ranium\SeedOnce\Traits\SeedOnce
trait in all your seeder classes including the main seeder (ex. DatabaseSeeder
) class.
That's it. Now no matter how many times you run php artisan db:seed
, the UsersTableSeeder
will only be executed once.
Projects with existing seeders
The usage instructions above assumes that you have installed this package before running any seeders. If you have already executed some or all seeders before installing this package, then you will need to mark those seeders as executed.
Run the following command to mark all existing seeder classes as seeded.
If you only want to mark specific seeder class as seeded, then run this command
Seeders Status
Often you would want to know that status of your seeder classes i.e. which seeders have been executed and which are pending. Run the following command to get the status
This will output a table with status of each seeder class
Seeded? | Seeder |
---|---|
Yes | UsersTableSeeder |
No | RolesTableSeeder |
Testing
The package unit tests can be executed with the following command (from inside package's root directory)
Credits
License
The MIT License (MIT). Please see License File for more information.