此软件包已被废弃,不再维护。作者建议使用 davidvandertuijn/laravel-after-seeders 软件包。

Seeders

1.2 2020-11-01 20:08 UTC

This package is auto-updated.

Last update: 2022-06-29 09:14:20 UTC


README

Total Downloads Latest Stable Version License

此库为 Laravel 添加了具有 版本支持 的 Seeders,适用于 生产环境。Seeders 存储在 database/seeders 目录中,格式为 JSON。进度在 Seeders 表中跟踪,以确保 Seeders 只运行一次。

安装

composer require florowebdevelopment/seeders
php artisan migrate

用法

创建一个新的 Seeder 并手动填充它。

使用以下命令创建一个空的 Seeder,如果您已经熟悉 JSON 结构并希望手动添加数据,这是一个好选择。

php artisan seeders:make my_table

创建的 Seeder: /database/seeders/YYYY_MM_DD_XXXXXX_my_table.json

{
    "RECORDS": [
        {
            "name": "Example"
        }
    ]
}

Navicat for MySQL 中,导出为 JSON 文件 (.json) 时使用相同的结构。

创建一个新的 Seeder 并自动填充它。

使用以下命令创建一个基于表中现有记录的完整 Seeder。

php artisan seeders:generate my_table

需要哪些列取决于指定的表。未回答的列不会包含在 Seeder 中。在指定范围内,您指定应包含在 Seeder 中的记录 ID。

Columns
Add column "id" ? (yes/no) [no]: y
Add column "name" ? (yes/no) [no]: y
Add column "dateofbirth" ? (yes/no) [no]:
Range
my_table.id from [0]: 12
my_table.id to [14]: 14

创建的 Seeder: /database/seeders/YYYY_MM_DD_XXXXXX_my_table.json

{
    "RECORDS": [
        {
            "id": 12,
            "name": "Bill Gates"
        },
        {
            "id": 13,
            "name": "Steve Jobs"
        },
        {
            "id": 14,
            "name": "John Doe"
        }
    ]
}

运行 Seeders

使用以下命令执行待处理的 Seeders

php artisan seeders:run

执行过程中会检查表和/或列是否实际存在,否则会跳过 Seeder。

Check seeder: YYYY_MM_DD_XXXXXX_my_table
[OK] Table "my_table" exists.
[OK] Columns "id, name" exists.

创建时间

如果表有一个 created_at 列,但这个列在 Seeder 中缺失,则填充当前时间。

更新或插入

如果 Seeder 中存在 id 列,则使用 updateOrInsert 方法,否则使用 insert 方法。