davidvandertuijn/laravel-after-seeders

1.0 2022-06-27 09:09 UTC

This package is auto-updated.

Last update: 2024-09-29 12:57:12 UTC


README

Total Downloads Latest Stable Version License

Laravel After Seeders

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

"Buy Me A Coffee"

安装

composer require davidvandertuijn/laravel-after-seeders

运行迁移

php artisan migrate

发布配置

php artisan vendor:publish --provider="Davidvandertuijn\LaravelAfterSeeders\ServiceProvider"

使用方法

创建新的 seeders 并手动填充。

使用以下命令创建一个空的 after seeder,如果您已经熟悉 JSON 结构并且想手动添加数据,则很有用。

php artisan after-seeders:make my_table

已创建 Seeder: /database/after_seeders/YYYY_MM_DD_XXXXXX_my_table.json

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

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

创建新的 seeders 并自动填充。

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

php artisan after-seeders:generate my_table

请求的列取决于指定的表。未回答的列不包括在 seeders 中。在指定范围内,您指定哪些记录 ID 应包含在 seeders 中。

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/after_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

使用以下命令执行挂起的 after seeders

php artisan after-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 方法。