diegohq / laravel-seeder
v6.0.1
2020-10-05 17:31 UTC
Requires
- php: >=7.1.0
- illuminate/console: 5.7.*|5.8.*|^6.0|^7.0|^8.0
- illuminate/database: 5.7.*|5.8.*|^6.0|^7.0|^8.0
- illuminate/filesystem: 5.7.*|5.8.*|^6.0|^7.0|^8.0
- illuminate/support: 5.7.*|5.8.*|^6.0|^7.0|^8.0
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: ^3.0
- phpunit/phpunit: ^7.0
README
Laravel 中目前所做的播种仅适用于开发构建,但如果你是迭代创建数据库,希望在开发过程中不断清除并重新填充数据库,那该怎么办呢?
如果你想要用与开发中不同的数据来播种生产数据库怎么办?如果你想要在一个正在生产中的数据库中添加的新表播种新数据怎么办?
LaravelSeeder 将 Laravel 中的数据库迁移功能扩展到数据库种子,使它们成为“可迁移的”。所有你已经习惯了 Laravel 迁移的功能都已经镜像,并且对种子具有类似的行为。
要求
- Laravel >= 5.4
- PHP >= 7.1
安装
- 运行
composer require eighty8/laravel-seeder
- 将
Eighty8\LaravelSeeder\SeederServiceProvider::class
添加到app/config/app.php
中的 providers 数组 - 运行
php artisan vendor:publish
将配置文件推送到你的配置文件夹,如果你想要覆盖种子文件夹的名称或存储种子的表的名称
特性
- 允许你在不同的环境中使用不同的值来播种数据库。
- 允许你以 Laravel 当前处理迁移的方式对种子进行“版本控制”。运行
php artisan seed
只会运行尚未运行的种子。 - 允许你运行同一模型/表的多个种子
- 如果您的数据库处于生产状态,则会提示您
用法
当你安装 LaravelSeeder 时,会提供各种 artisan 命令,这些命令使用与迁移相同的方法。
seed | 运行“seeders”目录中尚未运行的所有种子。 |
seed:rollback | 回滚不会撤销播种(由于自增主键,这是不可能的)。它只是允许你重新运行最后一批种子。 |
seed:reset | 重置所有种子。 |
seed:refresh | 重置并重新运行所有种子。 |
seed:status | 获取每个可迁移种子的状态。 |
seed:make | 在指定的环境中创建新的种子类。 |
seed:install | 你不必使用这个... 当你调用“seed”时会自动运行 |
本地开发
该项目包含一个 Dockerfile,其中预装了 PHP 7.2、XDebug 和 Composer,以方便本地开发。
要轻松启动本地开发环境,请使用 Docker Compose 配置
docker-compose up -d --build
默认情况下,入口脚本会为你安装 Composer 依赖。
要运行测试套件,请执行以下操作
docker-compose exec laravel-seeder test.sh
要运行代码覆盖率套件,请执行以下操作
docker-compose exec laravel-seeder code-coverage.sh
祝测试愉快!