visuddhinanda 2 ani în urmă
părinte
comite
3f98a8d52f
2 a modificat fișierele cu 32 adăugiri și 7 ștergeri
  1. 23 2
      patch/db_fix/compare.php
  2. 9 5
      patch/db_fix/test.php

+ 23 - 2
patch/db_fix/compare.php

@@ -24,7 +24,23 @@ $PDO_SRC->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 $PDO_DEST = openDb($config[$dest_db]);
 $PDO_DEST->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
+if(isset($argv[3])){
+    $on = false;
+}else{
+    $on = true;
+}
 foreach ($tables as $tableName => $table) {
+    if(isset($argv[3])){
+        if($tableName !== $argv[3]){
+            continue;
+            //$on = true;
+        }
+    }
+    /*
+    if(!$on){
+        continue;
+    }
+    */
     //A -> B 差异
     fwrite(STDOUT,$tableName.PHP_EOL);
     if($table['user'] === false){
@@ -100,7 +116,12 @@ foreach ($tables as $tableName => $table) {
             }
         }else{
             //缺失
-            fwrite(STDERR,$tableName.' new '.$realKey.PHP_EOL);
+            if(isset($srcData['uid'])){
+                $title = $srcData['uid'];
+            }else{
+                $title = '';
+            }
+            fwrite(STDOUT,$tableName." new title={$title} ".$realKey.PHP_EOL);
             $countNew++;
         }
     }
@@ -109,4 +130,4 @@ foreach ($tables as $tableName => $table) {
     fwrite(STDOUT,"Down={$countDown}".PHP_EOL);
     fwrite(STDOUT,"New={$countNew}".PHP_EOL);
     fwrite(STDOUT,PHP_EOL);
-}
+}

+ 9 - 5
patch/db_fix/test.php

@@ -9,8 +9,12 @@ if(php_sapi_name() !== "cli") {
     return;
 }
 
-$src_db = 'db_b';
-$dest_db = 'db_c';
+if(count($argv)<3){
+    echo 'expect 2 db '.(count($argv)-1).' gave';
+    return;
+}
+$src_db = $argv[1];
+$dest_db = $argv[2];
 
 #打开源数据库
 $PDO_SRC = openDb($config[$src_db]);
@@ -26,12 +30,12 @@ foreach ($tables as $tableName => $table) {
     $stmtSrc = $PDO_SRC->prepare($query);
     $stmtSrc->execute();
     $srcData = $stmtSrc->fetch(PDO::FETCH_ASSOC);
-    fwrite(STDOUT,'table 1 count='.$srcData['count'].PHP_EOL);
+    fwrite(STDOUT,"table {$src_db} count=".$srcData['count'].PHP_EOL);
 
     $stmtDest = $PDO_DEST->prepare($query);
     $stmtDest->execute();
     $destData = $stmtDest->fetch(PDO::FETCH_ASSOC);
-    fwrite(STDOUT,'table 2 count='.$destData['count'].PHP_EOL);
+    fwrite(STDOUT,"table {$dest_db} count=".$destData['count'].PHP_EOL);
 
     fwrite(STDOUT,'field='.count($table['fields']).PHP_EOL);
     $fields = '"' . implode('","',$table['fields']) . '"' ;
@@ -58,4 +62,4 @@ foreach ($tables as $tableName => $table) {
     }
 
     fwrite(STDOUT,PHP_EOL);
-}
+}