如何跟踪在 Laravel 中应用了哪些播种机?

How to track which seeders got applied in Laravel?

应用特定种子而不是为所有种子播种的明显方法是使用 --class 标志:

php artisan db:seed --class[=CLASS]

有没有办法跟踪到目前为止在Laravel中应用了哪些播种机(比如说,你可以用同样的方式跟踪运行宁php artisan migrate:status)?

此外,有没有办法应用范围的播种机(而不是单独指定每个class,这非常麻烦)。

让我想到这个的是书中播种机的这一部分"Build APIs You Won't Hate":

28         foreach ($tables as $table) {
29             DB::table($table)->truncate();
30         }
31 
32         $this->call('MerchantTableSeeder');
33         $this->call('PlaceTableSeeder');
34         $this->call('UserTableSeeder');”

想法是,每次您想 运行 主要播种机时,都必须从头开始。但这至少在我们的暂存环境中对我们来说是不切实际的,因为我们的 QA/Operations 员工总是将播种数据和手动数据组合在一起。

这似乎是种子工作方式过于复杂,或者您的 QA 环境不够复杂。

也许有不同的发展种子,随便你怎么称呼staging/qa?

我相信这个包是为 运行 像迁移这样的播种者创建的:https://github.com/slampenny/SmartSeeder。我认为它会满足您的需求。

关于这方面的文章很少的原因是,大多数时候播种机只用于手动初始化数据库,而不是更复杂的部署过程的一部分。