davidvandertuijn / laravel-after-seeders
Laravel After Seeders
1.0
2022-06-27 09:09 UTC
Requires
- php: >=7.0.0
- ext-json: *
This package is auto-updated.
Last update: 2024-09-29 12:57:12 UTC
README
此库为 Laravel 添加了具有 版本控制 支持的 seeders,适用于 生产环境。seeders 存储在 database/after_seeders 目录中,使用 JSON 格式。进度在 after_seeders 表中跟踪,因此 seeders 只运行一次。
安装
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 方法。