问题描述:最近在学习laravel 需要用到数据反向保存到代码中 百度了好久 找到了orangehill/iseed 插件,网上的博客都是5.4以下版本的介绍,我用的则是laravel5.8 貌似不可行,干脆直接跳到官网看看,发现人家已经更新匹配到了laravel7 也就是 orangehill/iseed 的2.6版本了。但是没有说是否支持5.8 【死脑筋】 ,于是乎,自己动手丰衣足食,甭管成不成的,先尝试一下。庆幸的是过程相当顺利并达到了预期效果。
开发项目中,总会碰到需要重置项目的情况,而有一些数据却是项目运行所需要的,这种情况下一般是两种方式:
- 手动在数据库中导入数据
- 手动编写数据填充
3.开发的项目发布到git上需要初始化数据【开发时手动添加的】
以上不管哪种方式,都需要手动进行操作,每次重置项目都操作一遍真的很浪费时间,而手动编写数据填充的话,如果数据记录少的话还可以,如果有很多条数据要处理就不理想了,几万条数据一条条写出来想想都很刺激,这个时候就需要祭出法宝了 – orangehill/iseed。
简介:
Inverse seed generator (iSeed)is a Laravel package that provides a method to generate a new seed file based on data from the existing database table.
orangehill/iseed
是一个自动生成数据填充的神器,支持Artisan
和代码调用
两种生成方式。
安装
需要composer支持
安装方法一: 命令行直接执行以下命令即可
- 5.5及以上版本
composer require orangehill/iseed
其他版本需注意
- Laravel 5.3.7及以下或Laravel 4需要特定版本
composer require orangehill/iseed:2.2 # Laravel 5.3.7 and below
composer require orangehill/iseed:1.1 # Laravel 4
- 添加服务提供商(Laravel 5.4及更低版本)
最新的Laravel版本具有自动发现功能并自动添加服务提供商-如果您使用的是5.4.x及以下版本,请记住将其添加到providers
数组/app/config/app.php
:
// ...
OrangehillIseedIseedServiceProvider::class,
安装方式二
修改 composer.json
如果 Laravel 5
的版本高于 5.3.8
:
"require": {
"orangehill/iseed": "dev-master"
}
如果 Laravel 5
的版本低于 5.3.8
:
"require": {
"orangehill/iseed": "2.2"
}
针对 Laravel 4
:
"require": {
"orangehill/iseed": "1.1"
}
更新 Composer
composer update
注册 ServiceProvider
修改 app/config/app.php
文件,在 providers
数组中添加:
// ...
OrangehillIseedIseedServiceProvider::class,
如何使用
Artisan 使用
php artisan iseed table_name
php artisan iseed my_table,another_table
注意这里的表名称不包含数据表前缀 比如我数据表为 user_rule 用户权限表,则
php artisan iseed user_rule
强制覆盖导出文件 -- force
在命令行后面带上 force 参数, 将强制覆盖原有生成的 seeder 文件, 如下
php artisan iseed users --force
将直接覆盖之前生成的
UsersTableSeeder.php
文件
导出指定数据库里的表 -- database
使用 database
参数, 可指定数据库里的数据表, 如下:
php artisan iseed users --database=mysql2
更多详细是使用事项请移步官网
https://github.com/orangehill/iseedgithub.com参考文章:
使用orangehill/iseed自动生成数据填充blog.lerzen.com