db differ
db differ
代码仓库:git@47.97.186.229:cyb/misc.git
E:\projects\misc\dbdiffer
http://a.misc.my/dbdiffer/index.php
mergely -- diff files online
- 生成当前dump:
mysqldump --skip-extended-insert --skip-dump-date -uroot -proot -P3333 p2p21_piaojuke_czbank > tmp1.sql
- 执行某些操作之后再dump:
mysqldump --skip-extended-insert --skip-dump-date -uroot -proot -P3333 p2p21_piaojuke_czbank > tmp2.sql
- 进入differ界面,列出所有dump目录下的文件
- 选择两个文件a、b,通过diff(git自带的工具)命令生成diff文件:
- 分析diff文件a、b,生成两个待比较的文件,
* 分析出表名name,再调用desc name 得到表头字段。
* 综合表头&数据,并转置
* 文件名规则:a-b-a,a-b-b,存入out目录。如果文件已经存在,则询问是否覆盖。
比如,比较03,04,最终生成的文件比较结果:
note
需要eval,不能简单批分:
'4028218166dcfcf40166de4b283f000e','支付成功','【票据客】尊敬的15310405001:您投资的银票宝2375期,金额3000元,订单已支付成功。','2018-11-04 18:35:59','15310405001','-1100|服务器端序列号错误,序列号不存在内存中,或尝试攻击的用户','2018-11-04 18:36:00',2,'{\"orderAmount\":\"3000\",\"payAmount\":\"3000.00\",\"phone\":\"15310405001\",\"realNm\":\"秦尉寒\",\"realCd\":\"ogjHRqk5\",\"triggerNode\":\"order.pay.success\",\"productName\":\"银票宝2375期\"}','order.pay.success','21','system','2018-11-04 18:35:59',1,0,'system','2018-11-04 18:35:59'
-- 使用eval进行处理最简单,不用语法分析。
web diff插件
diff命令需要在path中。
local_web.php进行配置
lv1= lv2= type=todo
db differ todo
1 做成service,上传两个dump文件,再上传数据库schema或者链接配置,就能显示差异。
2 如果上传了mysql链接配置,其实可以用户手动dump的,这样不用上传dump文件了。
3 上传字段注释文件,作为字段的解释?
SELECT table_name, COLUMN_NAME, COLUMN_COMMENT FROM INFORMATION_SCHEMA.Columns WHERE
table_schema='p2p21_piaojuke_czbank'
mysql_cache.txt
如果没有缓存文件,仍旧链接数据库获取;
支持上传dump、cache文件
支持 输入记录
lv1= lv2= type=todo
直接数据转换
用于直接查看insert的插入数据详情,在主页面上加此功能:
INSERT INTO `product_order` VALUES ('4028218166dcfcf40166de4b27eb000c','system','2018-11-04 18:35:59',0,3000.00,14.50,NULL,14.50,NULL,'PP1810121746916',0,'J181104183559334817','20181104','J181104183559334817','PJK2018110418355900011','PP1810121746916','2018-11-04 18:35:59',1,NULL,'4028218166da2a890166da2b6b9500a4',3000,1,'PP1810121746916',1.00000000,1,'ff80808162272ed1016227340b250002',0,'system','2018-11-04 18:35:59',0,'支付成功',1,'6210193310200514239','秦尉寒',NULL,0.0600,NULL);
每一条insert语句,直接做如下转换:
--- table product_order----
orderId : '4028218166dcfcf40166de4b27eb000c'
createBy : 'system'
createTime : '2018-11-04 18:35:59'
version : 0
amount : 3000.00
anticipatedIncome : 14.50
createDate : NULL
expectedIncome : 14.50
freezeStatus : NULL
freezeTrxId : 'PP1810121746916'
investWay : 0
orderCd : 'J181104183559334817'
orderDate : '20181104'
orderNo : 'J181104183559334817'
outsideOrderNo : 'PJK2018110418355900011'
outsideSerialNo : 'PP1810121746916'
payEndDate : '2018-11-04 18:35:59'
payStatus : 1
payUrl : NULL
productId : '4028218166da2a890166da2b6b9500a4'
quantity : 3000
status : 1
trxId : 'PP1810121746916'
unitprice : 1.00000000
verifyStatus : 1
memberId : 'ff80808162272ed1016227340b250002'
deleted : 0
updateBy : 'system'
updateTime : '2018-11-04 18:35:59'
operationSrc : 0
resultStr : '支付成功'
stageFlag : 1
tradeBankCard : '6210193310200514239'
tradeRealNm : '秦尉寒'
couponAmount : NULL
rate : 0.0600
couponOutsideOrderNo : NULL
lv1= lv2= type=todo
直接比较记录
在直接数据转换 的基础上,选择比较,如果有两条以上的记录,则直接展开、比较(在比较页面)前两条记录。