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');”