skychf / reap
根据现有数据库表中的数据生成新的 Laravel 数据库种子文件。
Requires
- php: >=7.2.0
README
安装
使用 composer
{ ... "require": { "skychf/reap": "1.*" } }
使用方法
修改 config/app.php
'providers' => array( 'Skychf\Reap\ReapServiceProvider' )
Artisan 命令选项
[表名]
必填参数,用于指定哪些表将被用于种子创建。使用 CSV 标记符表示多个表。将为每个表生成种子文件。
示例
php artisan db:reap my_table
php artisan db:reap my_table,another_table
force
可选参数,用于自动覆盖所需的表的现有种子
示例:以下命令将覆盖 laravel 的 seeds 目录中已存在的 UsersTableSeeder.php
。
php artisan db:reap users --force
clean
可选参数,将在创建新种子类之前清理 app/database/seeds/DatabaseSeeder.php
。
示例
php artisan db:reap users --clean
database
可选参数,指定 DB 连接名称。
示例
php artisan db:reap users --database=mysql2
max
可选参数,定义从指定表中种子的最大条目数。在多个表的情况下,限制将应用于所有表。
示例
artisan db:reap users --max=10
prerun
可选参数,将 laravel 事件名称分配给在种子之前触发的事件。如果事件监听器返回 false
,种子将自动失败。可以通过传递逗号分隔的数据库名称数组,并将相应地传递逗号分隔的事件名称数组来为多个表名称分配多个 prerun。
示例:以下命令将创建一个种子文件,在种子之前触发名为 'someEvent' 的事件。
artisan db:reap users --prerun=someEvent
以下示例将 someUserEvent
分配给 users
表种子,并将 someGroupEvent
分配给 groups
表种子,在种子之前执行。
artisan db:reap users,groups --prerun=someUserEvent,someGroupEvent
以下示例仅将 someGroupEvent
分配给 groups
表种子,在种子之前执行。这里省略了 users 表的 prerun 值,因此 users
表种子将没有分配 prerun 事件。
artisan db:reap users,groups --prerun=,someGroupEvent
postrun
可选参数,将 laravel 事件名称分配给在种子之后触发的事件。如果事件监听器返回 false
,种子将被执行,但将抛出一个异常,表明 postrun 失败。可以通过传递逗号分隔的数据库名称数组,并将相应地传递逗号分隔的事件名称数组来为多个表名称分配多个 postrun。
示例:以下命令将创建一个种子文件,在种子完成后触发名为 'someEvent' 的事件。
artisan db:reap users --postrun=someEvent
以下示例将 someUserEvent
分配给 users
表种子,并将 someGroupEvent
分配给 groups
表种子,在种子之后执行。
artisan db:reap users,groups --postrun=someUserEvent,someGroupEvent
以下示例仅将 someGroupEvent
分配给 groups
表种子,在种子之后执行。这里省略了 users 表的 postrun 值,因此 users
表种子将没有分配 postrun 事件。
artisan db:reap users,groups --postrun=,someGroupEvent
许可协议
此库采用 MIT 许可协议,请参阅 LICENSE
文件