chojnicki / laravel-seeder-extended
通过帮助方法和调试信息扩展 Seeder 的功能。
v1.1
2020-03-10 03:14 UTC
Requires
This package is auto-updated.
Last update: 2024-09-10 14:21:35 UTC
README
扩展默认 Seeder 的额外功能。
注意:此库将我的 laravel-seeder-debugger 与额外的方法混合。如果您不想使用以下列出的任何方法,只需调试器,则可以使用 chojnicki/laravel-seeder-debugger。
要求
- Laravel / Lumen 5.5 或更高版本(撰写于 5.8,未在低于 5.5 的版本上进行测试,但应在 5.* 上工作)
使用 Composer 安装
composer require chojnicki/laravel-seeder-extended
使用方法
在 DatabaseSeeder.php 中简单地替换
use Illuminate\Database\Seeder;
为
use Chojnicki\LaravelSeederExtended\Seeder;
可用方法
insertMultiple($collection, $chunkSize = 1000, $sorted = true)
如果您使用 Factory 创建例如 10,000 篇帖子,则保存它们将导致对数据库进行 10,000 次查询(这将很慢)。您可以通过传递要插入的模型集合到 insertMultiple() 来使用单个查询将多个项目插入到数据库中。
默认情况下,将使用单个查询插入 1000 个模型。对于数据较长的模型,您可以减少此值,而对于非常小的模型,可以增加。尝试找到最适合您的最佳点 ;)
记录将按从旧到新的顺序插入。您可以在第三个参数中禁用此操作,并使用自定义排序。
$this->insertMultiple($posts);
setRandomDate($model, $max = 15552000)
在模型上生成随机日期的简短方式(一次用于 created_at 和 updated_at)。默认范围为 6 个月,您可以在第二个参数中更改此值(以秒为单位)。如果您需要在其他地方使用,该方法将返回 Carbon 日期。
$this->setRandomDate($post);
还有更多想法吗?欢迎反馈和拉取请求 :)
调试
在完成播种后,控制台将显示如下调试信息
Database seeding completed successfully.
Seeding execution time: 8.6s.
Database queries executed: 329.
Current RAM usage is 18.7MB with peak during execution 59.1MB.
有了这些信息,您可以尝试编写更高效的种子器 :)
更多信息 -> chojnicki/laravel-seeder-debugger
注意
此调试器简单地扩展了原始 Seeder 库(它不是分支),因此保留所有功能,并且应该不会与已编写的种子器发生冲突。