2017 © Pedro Peláez
 

library dbfiller

an automatic data generator for mysql based on laravel

image

liryan/dbfiller

an automatic data generator for mysql based on laravel

  • Sunday, April 2, 2017
  • by liryan
  • Repository
  • 3 Watchers
  • 7 Stars
  • 15 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 1 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

安装说明:

composer require 'liryan/dbfiller' 'dev-master', (*1)

使用说明

在config/app.php中添加provider, (*2)

providers=[
    ...
    Dbfiller\DBFillerProvider::class,
],

在Lumen框架中,修改bootstrap/app.php, (*3)

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

生成配置文件

laravel运行命令,生成config/dbfiller.php, (*4)

php artisan vendor:publish, (*5)

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

cp vendor/liryan/dbfiler/src/config/dbfiller.php config/, (*7)

根据数据库修改此文件 然后运行, (*8)

php artisan mysql.filler, (*9)

测试format, (*10)

php artisan mysql.filler 'format' --count=1, (*11)

配置文件说明

<?php
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], (*12)

解释 % 随机数据 #  唯一数据 max-min: 数字:最大位数-最小位数 字符:字符个数 浮点:总位数,小数位数, (*13)

u/d/s/f/p:  
    u:无符号整数
    d:有符号整数
    s:字符串
    f:有符号浮点数
    p:无符号浮点

` 例如邮件字段格式: 'format'=>'#16-4s@%20-1s.%3-2s' 唯一的用户名(4-16个字符) @ 域名1-20字符,后缀2-3字符, (*14)

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

例如, (*16)

        'format'=>function($row){  //$row :目前生成的数据集,值传递,不要修改,在字段需要与字段产生关系的时候调用
                    return mt_rand(time()-30*24*3600,time())  //时间为最近一年某一刻
                  }

引用数据说明:
  格式:[%|#].[表名].[字段名]
  %:可以重复[一对多],#:不重复[两个表一一对应],   如 from="#.member.id' 表示此字段的值来自member表中的id字段,并且是顺序取值
, (*17)

配置实例

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, (*18)

The Versions

02/04 2017

dev-master

9999999-dev

an automatic data generator for mysql based on laravel

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

28/03 2017

0.0.1

0.0.1.0

an automatic data generator for mysql based on laravel

  Sources   Download

MIT

The Requires

  • php >=5.5.0