tyghaykal/laravel-seed-generator

v2.0.3 2024-05-03 10:45 UTC

This package is auto-updated.

Last update: 2024-09-03 11:32:49 UTC


README

Test CI Latest Stable Version Total Downloads Latest Unstable Version License

从数据库中的真实数据生成 Laravel 种子文件。

支持的数据库

  • MariaDB
  • MySQL
  • PostgreSQL
  • SQL Server
  • SQLite

版本兼容性

安装

composer require --dev tyghaykal/laravel-seed-generator

Laravel 设置

Laravel 会自动为您注册服务提供者,所以无需在此步骤中操作。

您可以使用 vendor:publish 生成一个配置文件来个性化此包,并选择 TYGHaykal\LaravelSeedGenerator\SeedGeneratorServiceProvider

php artisan vendor:publish

在配置文件中,您可以调整一些生成种子文件的设置,如命名空间、前缀、后缀和连接。

用法

选项

具有选项的模型用法

只需设置模型值,不需要 \App\Models\Appconfig.php 中定义的命名空间,例如您的模型命名空间位于 \App\Models\Master\Type 下,所以您只需输入 Master\Type。可以多个,用逗号分隔。

php artisan seed:generate --model-mode --models=Master\Type

您可以使用以下命令运行命令并显示菜单

php artisan seed:generate --model-mode --models=Master\Type --show-prompt

您可以使用 where 子句过滤要包含在种子文件中的数据

php artisan seed:generate --model-mode --models=Master\Type --where=field,type,value

您可以使用 where in 子句过滤要包含在种子文件中的数据

php artisan seed:generate --model-mode --models=Master\Type --where-in=field,value1,value2

您可以使用 where not in 子句过滤不包含在种子文件中的数据

php artisan seed:generate --model-mode --models=Master\Type --where-in=field,value1,value2

您可以使用 order-by 子句对要包含在种子文件中的数据进行排序

php artisan seed:generate --model-mode --models=Master\Type --order-by=field,type

您可以使用 limit 子句限制要包含在种子文件中的数据

php artisan seed:generate --model-mode --models=Master\Type --limit=10

您还可以根据 id 定义要包含在种子文件中的数据,只能用于单个模型

php artisan seed:generate --model-mode --models=Master\Type --ids="1,2,3"

或您想跳过某些 id

php artisan seed:generate --model-mode --models=Master\Type --ignore-ids="1,2,3"

您还可以根据字段名定义要包含在种子文件中的字段

php artisan seed:generate --model-mode --models=Master\Type --fields="id,name"

或您想跳过某些字段

php artisan seed:generate --model-mode --models=Master\Type --ignore-fields="id,name"

您还可以定义要种子哪个 hasMany 关系,仅对单个模型模式有效

php artisan seed:generate --model-mode --models=Master\Type --relations="relationName1,relationName2"

您还可以限制要种子的关系,仅对单个模型模式有效

php artisan seed:generate --model-mode --models=Master\Type --relations="relationName1,relationName2" --relations-limit=10

您还可以更改生成的种子文件的位置

php artisan seed:generate --model-mode --models=Master\Type --output=Should/Be/In/Here/Data

// it will produce in path database/seeders/Should/Be/In/Here/DataSeeder
// or
// it will produce in path database/seeds/Should/Be/In/Here/DataSeeder

默认情况下,每个生成的种子文件都将显示在 DatabaseSeeder.php 中,如果您不想这样做,可以使用 --no-seed 选项

php artisan seed:generate --model-mode --models=Master\Type --no-seed

具有选项的表用法

只需将表值设置为表名,可以多个,用逗号分隔

php artisan seed:generate --table-mode --tables=master_leave_types

您可以使用以下命令运行命令并显示菜单

php artisan seed:generate --table-mode --tables=master_leave_types --show-prompt

您可以使用 where 子句过滤要包含在种子文件中的数据

php artisan seed:generate --table-mode --tables=master_leave_types --where=field,type,value

您可以使用 where in 子句过滤要包含在种子文件中的数据

php artisan seed:generate --table-mode --tables=master_leave_types --where-in=field,value1,value2

您可以使用 where not in 子句过滤不包含在种子文件中的数据

php artisan seed:generate --table-mode --tables=master_leave_types --where-in=field,value1,value2

您可以使用 order-by 子句对要包含在种子文件中的数据进行排序

php artisan seed:generate --table-mode --tables=master_leave_types --order-by=field,type

您可以使用 limit 子句限制要包含在种子文件中的数据

php artisan seed:generate --table-mode --tables=master_leave_types --limit=10

您还可以根据 id 定义要包含在种子文件中的数据

php artisan seed:generate --table-mode --tables=master_leave_types --ids="1,2,3"

或您想跳过某些 id

php artisan seed:generate --table-mode --tables=master_leave_types --ignore-ids="1,2,3"

您还可以根据字段名定义要包含在种子文件中的字段

php artisan seed:generate --table-mode --tables=master_leave_types --fields="id,name"

或您想跳过某些字段

php artisan seed:generate --table-mode --tables=master_leave_types --ignore-fields="id,name"

您还可以更改生成的种子文件的位置

php artisan seed:generate --table-mode --tables=master_leave_types --output=Should/Be/In/Here/Data

// it will produce in path database/seeders/Should/Be/In/Here/DataSeeder
// or
// it will produce in path database/seeds/Should/Be/In/Here/DataSeeder

默认情况下,每个生成的种子文件都将显示在 DatabaseSeeder.php 中,如果您不想这样做,可以使用 --no-seed 选项

php artisan seed:generate --table-mode --tables=master_leave_types --no-seed