skychf/reap

根据现有数据库表中的数据生成新的 Laravel 数据库种子文件。

v2.5 2021-05-07 03:48 UTC

This package is not auto-updated.

Last update: 2024-09-20 21:22:14 UTC


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 文件