florowebdevelopment / seeders
1.2
2020-11-01 20:08 UTC
Requires
- php: >=7.0.0
- ext-json: *
README
此库为 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 方法。