MySQL优化filler值_GitHub - liryan/dbfiller: 基于Laravel / Lumen的组件,给数据库自动生成测试数据...

安装说明:

composer require 'liryan/dbfiller' 'dev-master'

使用说明

在config/app.php中添加provider

providers=[

...

Dbfiller\DBFillerProvider::class,

],

在Lumen框架中,修改bootstrap/app.php

...

$app->register(Dbfiller\DBFillerProvider::class);

生成配置文件

laravel运行命令,生成config/dbfiller.php

php artisan vendor:publish

Lumen中生成配置文件复制到项目config目录,不存在就新建

cp vendor/liryan/dbfiler/src/config/dbfiller.php config/

根据数据库修改此文件

然后运行

php artisan mysql.filler

测试format

php artisan mysql.filler 'format' --count=1

配置文件说明

return[

'表1'=>

[

'total'=>'要生成多少数据',

'key'=>'此表的主键字段名字,默认为id',

'define'=>[

'字段名1'=>['format'=>'格式说明','from'=>'引用数据']

'字段名2'=>['format'=>'格式说明','from'=>'引用数据']

...

]

],

'表2'=>

[

'total'=>'要生成多少数据',

'key'=>'此表的主键字段名字,默认为id',

'define'=>[

'字段名1'=>['format'=>'格式说明','from'=>'引用数据']

'字段名2'=>['format'=>'格式说明','from'=>'引用数据']

//不写字段,则会按照数据库中定义的数据类型自动生成

...

]

],

...

];

格式说明

字符串格式:[%|#][max-min][u/d/s/f/p]

解释

% 随机数据 #  唯一数据

max-min:

数字:最大位数-最小位数

字符:字符个数

浮点:总位数,小数位数

u/d/s/f/p:

u:无符号整数

d:有符号整数

s:字符串

f:有符号浮点数

p:无符号浮点

`

例如邮件字段格式:

'format'=>'#16-4s@%20-1s.%3-2s'

唯一的用户名(4-16个字符) @ 域名1-20字符,后缀2-3字符

闭包格式:直接传递一个闭包函数,则数据调用你的闭包函数生成

例如

'format'=>function($row){ //$row :目前生成的数据集,值传递,不要修改,在字段需要与字段产生关系的时候调用

return mt_rand(time()-30*24*3600,time()) //时间为最近一年某一刻

}

引用数据说明:

格式:[%|#].[表名].[字段名]

%:可以重复[一对多],#:不重复[两个表一一对应],

如 from="#.member.id' 表示此字段的值来自member表中的id字段,并且是顺序取值

配置实例

return [

'member'=>[

'total'=>10000,

'key'=>'id',

'define'=>[

'avatar'=>['format'=>'http://%8-6s.com/%6s/%10-5s.jpg'],

'name'=>['format'=>'%16-4s'],

],

],

'address'=>[

'total'=>5000,

'key'=>'id',

'define'=>[

'userid'=>['format'=>'',from=>'#.member.id'] //数据来自上面member表单字段,member一定要先生成

'address'=>['format'=>'%32-16s'],

'postcode'=>['format'=>function($row){

$table=[100012,100013,100023,200010]; //随机返回一个数据

return $table[mt_rand(0,count($table)-1)];

}],

],

],

];

QQ:79509281

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值