项目移植时计算sql字段的不同

/**

* 比较两个文件的不同

* User: VM

* Date: 2018/7/20

* Time: 12:38

*/

$src='a.sql';

$tar= 'b.sql';

$fs= file($src);

$ft= file($tar);

$slist= op($fs);

$tlist= op($ft);

$diff= [];

foreach($slistas$k=>$v) {

if(!isset($tlist[$k])){

// $diff[$k] = $v; //此处是寻找在tar中没有的

continue;

}

if( !op_diff($v,$tlist[$k]) ){

$diff[$k] = ['src'=>$v,'tar'=>$tlist[$k]];

}

}

functionop_diff($arr1,$arr2){

sort($arr1);

sort($arr2);

return$arr1==$arr2;

}

echo'

';

print_r(array_keys($diff));

print_r($diff);

/**

*读取文件内容

*@param$fs

*@returnarray

*/

functionop($fs){

$slist= [];

$table='';

foreach($fsas$f) {

$f= trim($f);

if(strpos($f,'CREATE TABLE') !==false){

$temp= explode('`',$f);

$table=$temp[1];

}

if(strpos($f,') ENGINE=InnoDB') !==false){

$table='';

}

if($table&& substr($f,,1) =='`'){

$attr= explode('`',$f);

$slist[$table][] =$attr[1];

}

}

return$slist;

}

先用navicat把 两个数据库导出数据库结构,再用以上程序计算

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180720G0W3KD00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券