Php 如何跟踪哪些播种机应用于Laravel?

Php 如何跟踪哪些播种机应用于Laravel?,php,laravel,laravel-5,seed,laravel-seeding,Php,Laravel,Laravel 5,Seed,Laravel Seeding,应用特定种子而不是全部种子的明显方法是使用--class标志: php artisan db:seed --class[=CLASS] 有没有一种方法可以跟踪到目前为止在Laravel中应用了哪些播种机(比如,通过运行php artisan migrate:status,可以跟踪迁移是如何应用的) 此外,是否有一种方法可以应用一系列播种器(而不是单独指定每个类,这非常麻烦) 让我想到这一点的是《构建你不会讨厌的API》一书中播种器的这一部分: 这个想法是,每次你想运行主播种机,你必须从头开始。

应用特定种子而不是全部种子的明显方法是使用
--class
标志:

php artisan db:seed --class[=CLASS]
有没有一种方法可以跟踪到目前为止在Laravel中应用了哪些播种机(比如,通过运行
php artisan migrate:status
,可以跟踪迁移是如何应用的)

此外,是否有一种方法可以应用一系列播种器(而不是单独指定每个类,这非常麻烦)

让我想到这一点的是《构建你不会讨厌的API》一书中播种器的这一部分:


这个想法是,每次你想运行主播种机,你必须从头开始。但这对我们的登台环境来说并不实际,至少在登台环境中,我们的QA/操作人员总是会同时输入种子数据和手动数据。

这似乎是种子工作方式的过度复杂化,或者是QA环境的欠复杂化


可能有不同的种子用于开发,无论你称之为登台/质量保证?

这似乎是种子工作方式的过度复杂化,或者是质量保证环境的欠复杂化


可能有不同的种子用于开发,无论您称之为staging/qa什么?

我相信创建此包是为了运行种子程序,比如迁移:。我想它会满足你的需求


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

我相信创建此包是为了运行种子程序,如迁移:。我想它会满足你的需求


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

您是否可以修改种子程序以使用
updateOrCreate()
而不是
create()
,并以这种方式解决它?如果您需要做的只是确保某些记录始终存在,那么这将是实现它的一种方法。您还可以创建一个名为
seeders
的表,并将其视为数据库迁移。您可以扩展
种子程序
类并覆盖
\u invoke()
函数,以检查它以前是否已播种。您是否可以修改种子程序以使用
updateOrCreate()
而不是
create()
,并以这种方式解决它?如果您需要做的只是确保某些记录始终存在,那么这将是实现它的一种方法。您还可以创建一个名为
seeders
的表,并将其视为数据库迁移。您可以扩展
种子机
类并覆盖
\u invoke()
函数,以检查它以前是否已种子化。我们如何填充暂存种子?通过自动转储实时数据?还是一样的问题。。实际上,每个环境都有不同的数据。。但它是相同的代码库。。最终,我们必须在开发阶段使用相同的种子代码,您可以硬编码种子文件中的ID,这样您就知道要删除哪个。如果建立了关系,那么所有相关数据都将在删除时级联,这将很好地解决问题?通过自动转储实时数据?还是一样的问题。。实际上,每个环境都有不同的数据。。但它是相同的代码库。。最终,我们必须在开发阶段使用相同的种子代码,您可以硬编码种子文件中的ID,这样您就知道要删除哪个。如果建立了关系,那么所有相关数据都将在删除时级联,这将很好地解决问题。
28         foreach ($tables as $table) {
29             DB::table($table)->truncate();
30         }
31 
32         $this->call('MerchantTableSeeder');
33         $this->call('PlaceTableSeeder');
34         $this->call('UserTableSeeder');”