chojnicki/laravel-seeder-extended

通过帮助方法和调试信息扩展 Seeder 的功能。

v1.1 2020-03-10 03:14 UTC

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 库(它不是分支),因此保留所有功能,并且应该不会与已编写的种子器发生冲突。