说明
开发者使用 Laravel 部署一个新项目的时候, 通常会使用 seeder 快速填充本地数据以方便开发调试.
iseed 扩展包提供了可将数据表里的数据直接转换为 seeder 文件的功能.
使用场景
通常情况下, 我们会希望本地开发环境数据与生产完全一致, 这样开发者的开发与调试会更加的直观、有效率.
当我们想将生产环境的数据同步到所有开发者的系统中, 此扩展包将会非常有用.
当我们想将生产环境的数据同步到所有开发者的系统中, 此扩展包将会非常有用.
文章的 DEMO 项目
截图
运行
请参照此文档运行 Demo:
https://phphub.org/topics/1902
https://phphub.org/topics/1902
文章概览
- 安装;
- 基础用法;
- 推荐实践;
- 更多用法.
接下来是详细解说
安装
1). 直接运行以下命令安装扩展包
composer require orangehill/iseed
2). 在你的
config/app.php
文件中添加 Service Provider'providers' => [
...
Orangehill\Iseed\IseedServiceProvider::class,
],
安装结束, 就这么简单.
基础用法
导出指定表的数据
在
php artisan iseed
后面带上本地数据表的名称, 可直接将数据库表的内容转换为 seeder 文件.
如下可生成
users
表的 seeder 文件:php artisan iseed users
也可选择同时生成
users
和 topics
seeder 文件:php artisan iseed users,topics
强制覆盖导出文件 -- force
在命令行后面带上 force 参数, 将强制覆盖原有生成的 seeder 文件, 如下:
php artisan iseed users --force
将直接覆盖之前生成的
UsersTableSeeder.php
文件
根据上面两个命令导出的
UsersTableSeeder.php
文件内容如下图:导出指定数据库里的表 -- database
使用
database
参数, 可指定数据库里的数据表, 如下:php artisan iseed users --database=mysql2
推荐实践
在实际开发的过程中, 为了不影响生产环境的正常运转, 建议使用以下方式同步开发者的 seed 数据:
- 将生产环境的备份数据导入到某一个开发者的电脑中;
- 此开发者运行
php artisan iseed ...
生成指定的 seeder 文件; - 将 seeder 文件提交版本管理, 其他人同步更新并导入.
更多用法
关于其它更加详尽的命令行, 如: max, prerun, postrun 等使用可查看 原文档.
reference : https://phphub.org/topics/1929
沒有留言:
張貼留言