Configure the data fill framework - 配置化数据填充框架,帮助快速模拟虚拟数据

网友投稿 837 2022-11-05

Configure the data fill framework - 配置化数据填充框架,帮助快速模拟虚拟数据

Configure the data fill framework - 配置化数据填充框架,帮助快速模拟虚拟数据

概述

ivy是一个配置化的数据填充框架,主要解决的场景

帮助你更好的去处理开发项目前无数据的尴尬摆脱手动创建数据库和数据表的繁琐工作快速生成数据后台所要的模拟数据,帮助你更快编写数据统计的逻辑开发

采用配置化的模式,使工作更加高效。配置多个主机模拟数据只要在文件配一下,就能够实现你想要的效果。

ivy核心思想是解放劳动力,让你能够在不编写或最少写代码的情况下完成填充的任务

对比

相对 lkmc2/python-sql-faker 数据框架来说,更加方便。除去了 python 库学习的成本,不用纠结代码的 编写问题,减少因为不熟悉Python导致的时间浪费。但是配置化后虽然方便使用,但是相对于直接代码编写存在代码朝 复杂化发展,这也是两个框架不同的定位。各有优劣。

要求

Python3+

Works on Linux, Windows, Mac OSX, BSD

文档

padding_data.yml 配置文件(遵循yaml语法)

主要做两个功能:

配置实现数据库,数据表自动创建填充数据,高度支持faker库

配置文件直接写在 config 目录就可以了,不过要注意这里只认识 .yml 后缀的配置文件哦。所以只要定义了 yml的文件都会被执行的哦

栗子:

- host: 192.168.3.9 port: 9003 username: root password: root charset: utf8mb4 dbname: faker databases: - table: faker fields: id: INT NOT NULL AUTO_INCREMENT name: VARCHAR(20) NOT NULL date: timestamp NOT NULL index: - PRIMARY KEY (id) other: - ENGINE=InnoDB - DEFAULT - CHARSET=utf8mb4 fill_rule: date: func: range_date start: '2019-07-20' end: '2019-08-20' res_format: '%Y-%m-%d %H-%M-%S' step: HOUR_TO_SECOND name: func: faker|name number: 5

tips:

这里面使用数组的形式进行配置,每个数组对应一个服务器地址, 想要填充多个服务器上面的数据库就需要对其进行数组配置

host: 数据库服务器ip

port: 数据库服务器端口

username: 数据库用户名

password: 数据库密码

charset: 编码

dbname: 创建的数据库名

databases: 数据库表数组

table: 数据表名

fields: 数据表字段

index: 数据表索引

other: 数据表外层engine这些

fill_rule: 数据库填充的内容设置

number: 要填充的数量

填充的规则定义如下

自定义的处理函数要在 ivy/functions/__init__.py 中定义函数名称,就是用在配置中的 func 哦。

date: start: 开始时间 end: 结束时间 res_format: 生成的时间格式 step: 控制时间间隔,具体常量DAY_TO_SECOND,HOUR_TO_SECOND,MINUTE_TO_SECOND,SECOND

faker 库的调用,这里面要直接带上 faker 前缀,然后用|来对其进行分割,这里面不允许使用空格。然后后面带上 faker 库中的函数调用就行了。例如上面例子中,直接使用 name 这个函数调用。具体还可以使用什么函数参考 faker 库的官网

https://faker.readthedocs.io/en/master/locales/zh_CN.html

使用

安装需要使用的库

pip install -r requirements.txt

配置padding_data.yml文件,这里按照yaml语法配置就可以了 生成数据库并填充数据

python entry.py

效果如下

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:一篇文章带你了解mybatis的动态SQL
下一篇:基于module
相关文章

 发表评论

暂时没有评论,来抢沙发吧~