2
0
Эх сурвалжийг харах

Merge branch 'master' of https://github.com/iapt-platform/mint

bhikkhu-kosalla-china 4 жил өмнө
parent
commit
2355dcb981

+ 13 - 5
app/admin/word_index_weight_refresh.php

@@ -27,19 +27,26 @@ if (isset($_GET["from"])) {
 }
 
 $dh_word = new PDO( _PG_DB_WORD_INDEX_, _DB_USERNAME_, _DB_PASSWORD_);
-$dh_word->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
+$dh_word->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
 $dh_pali = new PDO( _PG_DB_PALI_INDEX_, _DB_USERNAME_, _DB_PASSWORD_);
-$dh_pali->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
+$dh_pali->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
 echo "from=$from to = $to \n";
 for ($i = $from; $i <= $to; $i++) {
     $time_start = microtime(true);
     echo "正在处理 book= $i ";
     $query = "SELECT max(paragraph) from "._PG_TABLE_WORD_." where book=?";
-	$stmt = $dh_pali->prepare($query);
-    $stmt->execute(array($i));
-    $row = $stmt->fetch(PDO::FETCH_NUM);
+	try {
+		//code...
+		$stmt = $dh_pali->prepare($query);
+		$stmt->execute(array($i));
+		$row = $stmt->fetch(PDO::FETCH_NUM);
+	}catch(PDOException $e){
+		fwrite(STDERR,"error:".$e->getMessage());
+		continue;
+	}
+
     if ($row) {
         $max_para = $row[0];
         echo "段落数量:$max_para ";
@@ -52,6 +59,7 @@ for ($i = $from; $i <= $to; $i++) {
             $query = "SELECT wordindex,count(*) as co from "._PG_TABLE_WORD_." where book={$i} and paragraph={$j} group by wordindex";
             $stmt = $dh_pali->query($query);
             $fetch_voc = $stmt->fetchAll(PDO::FETCH_ASSOC);
+			
             $vocabulary = array();
             foreach ($fetch_voc as $key => $value) {
                 $vocabulary[$value["wordindex"]] = $value["co"];

+ 14 - 3
app/install/db_insert_bookword_from_csv_cli.php

@@ -36,7 +36,7 @@ define("_TABLE_", "book_words");
 global $dbh_word_index;
 $dns = _DB_;
 $dbh_word_index = new PDO($dns, _DB_USERNAME_, _DB_PASSWORD_, array(PDO::ATTR_PERSISTENT => true));
-$dbh_word_index->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
+$dbh_word_index->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
 if (($handle = fopen(__DIR__."/filelist.csv", 'r')) !== false) {
     while (($filelist[$fileNums] = fgetcsv($handle, 0, ',')) !== false) {
@@ -68,7 +68,13 @@ for ($from=$_from-1; $from < $_to; $from++) {
     #删除原来的数据
     $query = "DELETE FROM "._TABLE_." WHERE book = ?";
     $stmt = $dbh_word_index->prepare($query);
-    $stmt->execute(array($book));
+	try{
+		$stmt->execute(array($book));
+	}catch(PDOException $e){
+		fwrite(STDERR,"error:".$e->getMessage());
+		continue;
+	}
+    
     if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
         $error = $dbh_word_index->errorInfo();
         echo "error - $error[2]".PHP_EOL;
@@ -80,7 +86,12 @@ for ($from=$_from-1; $from < $_to; $from++) {
         $stmt = $dbh_word_index->prepare($query);
 
         foreach ($bookword as $key => $value) {
-            $stmt->execute(array($book, $key, $value));
+			try{
+			$stmt->execute(array($book, $key, $value));	
+			}catch(PDOException $e){
+				fwrite(STDERR,$e->getMessage());
+			}
+            
         }
         // 提交更改
         $dbh_word_index->commit();

+ 23 - 7
app/install/db_insert_palitext_cli.php

@@ -40,7 +40,9 @@ if ($to == 0 || $to >= $fileNums) {
     $to = $fileNums - 1;
 }
 
-PDO_Connect(_PG_DB_PALITEXT_,_DB_USERNAME_,_DB_PASSWORD_);
+$dns = _PG_DB_PALITEXT_;
+$dbh = new PDO($dns, _DB_USERNAME_, _DB_PASSWORD_, array(PDO::ATTR_PERSISTENT => true));
+$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
 for ($from=$_from-1; $from < $to; $from++) { 
     # code...
@@ -108,13 +110,20 @@ for ($from=$_from-1; $from < $to; $from++) {
     
     #删除 旧数据
     $query = "DELETE FROM "._PG_TABLE_PALI_TEXT_." WHERE book=?";
-    PDO_Execute($query,array($from+1));
+	$stmt = $dbh->prepare($query);
+	try{
+		$stmt->execute(array($from+1));
+	}catch(PDOException $e){
+		fwrite(STDERR,$e->getMessage());
+		continue;
+	}
+
     
     // 开始一个事务,关闭自动提交
-    $PDO->beginTransaction();
+    $dbh->beginTransaction();
     
     $query = "INSERT INTO "._PG_TABLE_PALI_TEXT_." ( book , paragraph , level , class , toc , text , html , lenght ) VALUES ( ? , ? , ? , ? , ? , ? , ? , ? )";
-    $stmt = $PDO->prepare($query);
+    $stmt = $dbh->prepare($query);
     foreach ($arrInserString as $oneParam) {
         if ($oneParam[3] < 100) {
             $toc = $oneParam[6];
@@ -122,12 +131,19 @@ for ($from=$_from-1; $from < $to; $from++) {
             $toc = "";
         }
         $newData = array($from + 1, $oneParam[2], $oneParam[3], $oneParam[4], $toc, $oneParam[6], $oneParam[5], mb_strlen($oneParam[6], "UTF-8"));
-        $stmt->execute($newData);
+        try{
+			$stmt->execute($newData);
+		}catch(PDOException $e){
+			fwrite(STDERR,$e->getMessage());
+			fwrite(STDERR,implode(",",$newData));
+			break;
+		}
+		
     }
     // 提交更改
-    $PDO->commit();
+    $dbh->commit();
     if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
-        $error = PDO_ErrorInfo();
+        $error = $dbh->errorInfo();
         echo "error - $error[2]".PHP_EOL;
     
         $log = $log . "$from, $FileName, error, $error[2] \r\n";

+ 22 - 13
app/install/db_insert_templet_cli.php

@@ -36,7 +36,10 @@ if (($handle = fopen(__DIR__."/filelist.csv", 'r')) !== false) {
 echo "read file list".PHP_EOL;
 
 
-PDO_Connect(_DB_,_DB_USERNAME_,_DB_PASSWORD_);
+
+$dns = _DB_;
+$dbh = new PDO($dns, _DB_USERNAME_, _DB_PASSWORD_, array(PDO::ATTR_PERSISTENT => true));
+$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 echo "db Connectd".PHP_EOL;
 
 
@@ -82,23 +85,23 @@ for ($from=$_from; $from <=$_to ; $from++) {
 
 	#删除目标数据库中数据
 	$query = "DELETE FROM "._TABLE_." WHERE book = ?";
-	$stmt = $PDO->prepare($query);
-	if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
-		$error = $PDO->errorInfo();
-		echo "error - $error[2] ";
-		exit;
+	$stmt = $dbh->prepare($query);
+	try{
+		$stmt->execute(array($from));
+	}catch(PDOException $e){
+		fwrite(STDERR,$e->getMessage());
+		continue;
 	}
 
-	$stmt->execute(array($from));
 	echo "delete ".PHP_EOL;
 
 	$row=0;
 	// 开始一个事务,关闭自动提交
-	$PDO->beginTransaction();
+	$dbh->beginTransaction();
 	$query = "INSERT INTO "._TABLE_." ( book , paragraph, wid , word , real , type , gramma , part , style ) VALUES (?,?,?,?,?,?,?,?,?)";
-	$stmt = $PDO->prepare($query);
+	$stmt = $dbh->prepare($query);
 	if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
-		$error = PDO_ErrorInfo();
+		$error = $dbh->errorInfo();
 		echo "error - $error[2]".PHP_EOL;
 
 		$log = "$from, $FileName, error, $error[2] \r\n";
@@ -120,7 +123,13 @@ for ($from=$_from; $from <=$_to ; $from++) {
 						$data[7],
 						$data[10],
 						$data[15]);		
-					$stmt->execute($params);	
+						try{
+							$stmt->execute($params);
+						}catch(PDOException $e){
+							fwrite(STDERR,$e->getMessage());
+							fwrite(STDERR,implode(",",$params));
+							break;
+						}
 				}
 
 				$row++;
@@ -133,9 +142,9 @@ for ($from=$_from; $from <=$_to ; $from++) {
 	}
 
 	// 提交更改
-	$PDO->commit();
+	$dbh->commit();
 	if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
-		$error = PDO_ErrorInfo();
+		$error = $dbh->errorInfo();
 		echo "error - $error[2]".PHP_EOL;
 
 		$log = "$from, $FileName, error, $error[2] \r\n";

+ 16 - 3
app/install/db_insert_word_from_csv_cli.php

@@ -34,7 +34,7 @@ define("_TABLE_", "words");
 global $dbh_word_index;
 $dns = _DB_;
 $dbh_word_index = new PDO($dns, _DB_USERNAME_, _DB_PASSWORD_, array(PDO::ATTR_PERSISTENT => true));
-$dbh_word_index->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
+$dbh_word_index->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
 if (($handle = fopen(__DIR__."/filelist.csv", 'r')) !== false) {
     while (($filelist[$fileNums] = fgetcsv($handle, 0, ',')) !== false) {
@@ -50,7 +50,13 @@ for ($from=$_from-1; $from < $_to; $from++) {
     #删除
     $query = "DELETE FROM "._TABLE_." WHERE book = ?";
     $stmt = $dbh_word_index->prepare($query);
-    $stmt->execute(array($from+1));
+	try{
+		$stmt->execute(array($from+1));
+	}catch(PDOException $e){
+		fwrite(STDERR,$e->getMessage());
+		continue;
+	}
+    
 
 
     if (($fpoutput = fopen(_DIR_CSV_PALI_CANON_WORD_ . "/{$from}_words.csv", "r")) !== false) {
@@ -61,7 +67,14 @@ for ($from=$_from-1; $from < $_to; $from++) {
 
         $count = 0;
         while (($data = fgetcsv($fpoutput, 0, ',')) !== false) {
-            $stmt->execute($data);
+			try{
+				$stmt->execute($data);
+			}catch(PDOException $e){
+				fwrite(STDERR,$e->getMessage());
+				fwrite(STDERR,implode(",",$data));
+				break;
+			}
+            
             $count++;
         }
         // 提交更改

+ 16 - 5
app/install/db_insert_wordindex_from_csv_cli.php

@@ -18,12 +18,18 @@ define("_TABLE_", "word_indexs");
 
 $dns = _DB_WORD_INDEX_;
 $dbh_word_index = new PDO($dns, _DB_USERNAME_, _DB_PASSWORD_, array(PDO::ATTR_PERSISTENT => true));
-$dbh_word_index->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
+$dbh_word_index->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
 #删除
-$query = "DELETE FROM "._TABLE_." WHERE true";
-$stmt = $dbh_word_index->prepare($query);
-$stmt->execute();
+try{
+	$query = "DELETE FROM "._TABLE_;
+	$stmt = $dbh_word_index->prepare($query);
+	$stmt->execute();
+}catch(PDOException $e){
+	fwrite(STDERR,$e->getMessage());
+	exit;
+}
+
 
     $scan = scandir(_DIR_CSV_PALI_CANON_WORD_INDEX_);
     foreach($scan as $filename) {
@@ -40,7 +46,12 @@ $stmt->execute();
         
                 $count = 0;
                 while (($data = fgetcsv($fpoutput, 0, ',')) !== false) {
-                    $stmt->execute($data);
+					try{
+						$stmt->execute($data);
+					}catch(PDOException $e){
+						fwrite(STDERR,$e->getMessage());
+					}
+                    
                     $count++;
                 }
                 // 提交更改

+ 2 - 1
app/install/db_update_palitext_cli.php

@@ -8,7 +8,7 @@ require_once __DIR__.'/../public/_pdo.php';
 define("_DB_PALITEXT_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
 define("_TABLE_","pali_texts");
 
-echo "Insert Pali Text To DB".PHP_EOL;
+echo "Update Pali Text ".PHP_EOL;
 
 if ($argc != 3) {
 	echo "help".PHP_EOL;
@@ -43,6 +43,7 @@ if ($to == 0 || $to >= $fileNums) {
 
 PDO_Connect(_DB_PALITEXT_,_DB_USERNAME_,_DB_PASSWORD_);
 
+
 for ($from=$_from-1; $from < $to; $from++) { 
     echo "doing $from".PHP_EOL;
 

+ 28 - 9
app/install/db_update_toc_cli.php

@@ -39,7 +39,10 @@ if ($to == 0 || $to >= $fileNums) {
     $to = $fileNums - 1;
 }
 
-PDO_Connect(_DB_RES_INDEX_,_DB_USERNAME_,_DB_PASSWORD_);
+
+$dns = _DB_RES_INDEX_;
+$dbh = new PDO($dns, _DB_USERNAME_, _DB_PASSWORD_, array(PDO::ATTR_PERSISTENT => true));
+$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
 for ($from=$_from-1; $from < $_to; $from++) { 
     # code...
@@ -92,14 +95,24 @@ for ($from=$_from-1; $from < $_to; $from++) {
     //删除已有标题
     
     $query = "DELETE FROM \""._TABLE_."\" WHERE book = ?  AND  language = ?  ";
-    PDO_Execute($query, array($book,$_lang));
-    
+	try{
+		$stmt = $dbh->prepare($query);
+		$stmt->execute(array($book,$_lang));
+	}catch(PDOException $e){
+		fwrite(STDERR,"error:".$e->getMessage());
+		continue;
+	}
     
     // 开始一个事务,关闭自动提交
-    $PDO->beginTransaction();
+    $dbh->beginTransaction();
     $query = "INSERT INTO \""._TABLE_."\" (book , paragraph, title, title_en , level, type , language , author , share , create_time , update_time  ) VALUES (  ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? )";
-    $stmt = $PDO->prepare($query);
-    if ($_lang == "pali") {
+    try{
+	$stmt = $dbh->prepare($query);
+	}catch(PDOException $e){
+		fwrite(STDERR,"error:".$e->getMessage());
+		break;
+	}
+	if ($_lang == "pali") {
         $type = 1;
     } else {
         $type = 2;
@@ -124,12 +137,18 @@ for ($from=$_from-1; $from < $_to; $from++) {
             mTime(),
             mTime(),
         );
-        $stmt->execute($newData);
+		try{
+			$stmt->execute($newData);
+		}catch(PDOException $e){
+			fwrite(STDERR,"error:".$e->getMessage());
+			fwrite(STDERR,implode(",",$newData));
+			break;
+		}
     }
     // 提交更改
-    $PDO->commit();
+    $dbh->commit();
     if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
-        $error = PDO_ErrorInfo();
+        $error = $dbh->errorInfo();
         echo "error - $error[2] ".PHP_EOL;
         $log = $log . "$from, error, $error[2] \r\n";
     } else {

+ 44 - 29
deploy/migaration/20211125155600_word_statistics.php

@@ -6,57 +6,70 @@ define("_PG_TABLE_WORD_STATISTICS_", "word_statistics");
 
 #打开源数据库
 $PDO_SRC = new PDO(_SRC_DB_STATISTICS_,_DB_USERNAME_,_DB_PASSWORD_,array(PDO::ATTR_PERSISTENT=>true));
-$PDO_SRC->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
+$PDO_SRC->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 echo "open src".PHP_EOL;
 
 #打开目标数据库
 $PDO_DEST = new PDO(_PG_DB_STATISTICS_,_DB_USERNAME_,_DB_PASSWORD_,array(PDO::ATTR_PERSISTENT=>true));
-$PDO_DEST->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
-echo "open dest".PHP_EOL;
+$PDO_DEST->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+fwrite(STDOUT,"open dest ok".PHP_EOL) ;
 
 #删除目标数据库中所有数据
-$query = "DELETE FROM "._PG_TABLE_WORD_STATISTICS_." WHERE true";
-$stmt = $PDO_DEST->prepare($query);
-if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
-    $error = $PDO_DEST->errorInfo();
-    echo "error - $error[2] ";
+fwrite(STDOUT,"deleting date".PHP_EOL) ;
+
+try{
+	$query = "DELETE FROM "._PG_TABLE_WORD_STATISTICS_;
+	$stmt = $PDO_DEST->prepare($query);
+	$stmt->execute();
+}catch(PDOException $e){
+	fwrite(STDERR,"error:".$e->getMessage());
 	exit;
 }
+fwrite(STDOUT,"deleted date".PHP_EOL) ;
 
-$stmt->execute();
-echo "delete dest".PHP_EOL;
 
 // 开始一个事务,关闭自动提交
 $count = 0;
-echo "begin Transaction".PHP_EOL;
+fwrite(STDOUT,"begin Transaction".PHP_EOL);
 
 $PDO_DEST->beginTransaction();
 
 $query = "INSERT INTO "._PG_TABLE_WORD_STATISTICS_." ( bookid , word , count , base , end1 , end2 , type , length ) VALUES ( ? , ? , ? , ? , ? , ? , ? , ? )";
-$stmtDEST = $PDO_DEST->prepare($query);
-
+try{
+	$stmtDEST = $PDO_DEST->prepare($query);
+}catch(PDOException $e){
+	fwrite(STDERR,"error:".$e->getMessage());
+	exit;
+}
 #从源数据库中读取
 $query = "SELECT *  FROM "._SRC_TABLE_WORD_STATISTICS_." WHERE true ";
-$stmtSrc = $PDO_SRC->prepare($query);
-$stmtSrc->execute();
 
+try{
+	$stmtSrc = $PDO_SRC->prepare($query);
+	$stmtSrc->execute();
+}catch(PDOException $e){
+	fwrite(STDERR,"error:".$e->getMessage());
+	exit;
+}
 while($srcData = $stmtSrc->fetch(PDO::FETCH_ASSOC)){
 	#插入目标表
-    $stmtDEST->execute(array(
-					$srcData["bookid"],
-					$srcData["word"],
-					(int)$srcData["count"],
-					$srcData["base"],
-					$srcData["end1"],
-					$srcData["end2"],
-					(int)$srcData["type"],
-					(int)$srcData["length"]
-				));
-	if (!$stmtDEST || ($stmtDEST && $stmtDEST->errorCode() != 0)) {
-		$error = $PDO_DEST->errorInfo();
-		echo "error - $error[2] ";
+		$data = array(
+						$srcData["bookid"],
+						$srcData["word"],
+						(int)$srcData["count"],
+						$srcData["base"],
+						$srcData["end1"],
+						$srcData["end2"],
+						(int)$srcData["type"],
+						(int)$srcData["length"]
+					);
+	try{					
+		$stmtDEST->execute($data);		
+	}catch(PDOException $e){
+		fwrite(STDERR,"error:".$e->getMessage().implode(',',$data));
 		exit;
-	}			
+	}
+
 	$count++;
 	if($count%10000==0){
 		echo "finished $count".PHP_EOL;
@@ -64,7 +77,9 @@ while($srcData = $stmtSrc->fetch(PDO::FETCH_ASSOC)){
 }
 
 // 提交更改
+
 $PDO_DEST->commit();
+
 echo "done".PHP_EOL;
 
 

+ 31 - 20
deploy/migaration/20211125155700_pali_sent_org.php

@@ -13,25 +13,25 @@ $dest_table=_PG_TABLE_PALI_SENT_ORG_;#目标表名
 echo "migarate pali_sent_org".PHP_EOL;
 #打开源数据库
 $PDO_SRC = new PDO($src_db,_DB_USERNAME_,_DB_PASSWORD_,array(PDO::ATTR_PERSISTENT=>true));
-$PDO_SRC->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
+$PDO_SRC->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 echo "open src".PHP_EOL;
 
 #打开目标数据库
 $PDO_DEST = new PDO($dest_db,_DB_USERNAME_,_DB_PASSWORD_,array(PDO::ATTR_PERSISTENT=>true));
-$PDO_DEST->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
+$PDO_DEST->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 echo "open dest".PHP_EOL;
 
 #删除目标表中所有数据
-$query = "DELETE FROM ".$dest_table." WHERE true";
-$stmt = $PDO_DEST->prepare($query);
-if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
-    $error = $PDO_DEST->errorInfo();
-    echo "error - $error[2] ";
+fwrite(STDOUT,"deleting date".PHP_EOL) ;
+try{
+	$query = "DELETE FROM ".$dest_table;
+	$stmt = $PDO_DEST->prepare($query);
+	$stmt->execute();
+}catch(PDOException $e){
+	fwrite(STDERR,"error:".$e->getMessage());
 	exit;
 }
-
-$stmt->execute();
-echo "delete dest".PHP_EOL;
+fwrite(STDOUT,"deleted date".PHP_EOL) ;
 
 // 开始一个事务,关闭自动提交
 $count = 0;
@@ -40,16 +40,26 @@ echo "begin Transaction".PHP_EOL;
 $PDO_DEST->beginTransaction();
 
 $query = "INSERT INTO ".$dest_table." (id, book , paragraph , word_begin , word_end , length , count , text , html,sim_sents ) VALUES ( ? , ? , ? , ? , ? , ? , ? , ? , ? ,?)";
-$stmtDEST = $PDO_DEST->prepare($query);
+try{
+	$stmtDEST = $PDO_DEST->prepare($query);
+}catch(PDOException $e){
+	fwrite(STDERR,"error:".$e->getMessage());
+	exit;
+}
 
 #从源数据表中读取
-$query = "SELECT *  FROM ".$src_table." WHERE true ";
-$stmtSrc = $PDO_SRC->prepare($query);
-$stmtSrc->execute();
+$query = "SELECT *  FROM ".$src_table;
+try{
+	$stmtSrc = $PDO_SRC->prepare($query);
+	$stmtSrc->execute();
+}catch(PDOException $e){
+	fwrite(STDERR,"error:".$e->getMessage());
+	exit;
+}
 
 while($srcData = $stmtSrc->fetch(PDO::FETCH_ASSOC)){
 	#插入目标表
-    $stmtDEST->execute(array(
+	$data = array(
 					(int)$srcData["id"],
 					(int)$srcData["book"],
 					(int)$srcData["paragraph"],
@@ -60,12 +70,13 @@ while($srcData = $stmtSrc->fetch(PDO::FETCH_ASSOC)){
 					$srcData["text"],
 					$srcData["html"],
 					$srcData["sim_sents"]
-				));
-	if (!$stmtDEST || ($stmtDEST && $stmtDEST->errorCode() != 0)) {
-		$error = $PDO_DEST->errorInfo();
-		echo "error - $error[2] ";
+				);
+	try{					
+		$stmtDEST->execute($data);		
+	}catch(PDOException $e){
+		fwrite(STDERR,"error:".$e->getMessage().implode(',',$data));
 		exit;
-	}			
+	}
 	$count++;
 	if($count%10000==0){
 		echo "finished $count".PHP_EOL;

+ 35 - 22
deploy/migaration/20211125165700-pali_sent-upgrade.php

@@ -1,11 +1,13 @@
 <?php
 require_once __DIR__."/../../app/config.php";
 
+
 define("_PG_DB_PALI_SENTENCE_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
 define("_PG_TABLE_PALI_SENT_", "pali_sentences");
+define("_PG_TABLE_PALI_SENT_ORG_", "pali_sent_orgs");
 
-$src_db=_FILE_DB_PALI_SENTENCE_;#源数据库
-$src_table=_TABLE_PALI_SENT_ORG_;#源表名
+$src_db=_PG_DB_PALI_SENTENCE_;#源数据库
+$src_table=_PG_TABLE_PALI_SENT_ORG_;#源表名
 
 $dest_db=_PG_DB_PALI_SENTENCE_;#目标数据库
 $dest_table=_PG_TABLE_PALI_SENT_;#目标表名
@@ -13,25 +15,26 @@ $dest_table=_PG_TABLE_PALI_SENT_;#目标表名
 echo "migarate pali_sent_org".PHP_EOL;
 #打开源数据库
 $PDO_SRC = new PDO($src_db,_DB_USERNAME_,_DB_PASSWORD_,array(PDO::ATTR_PERSISTENT=>true));
-$PDO_SRC->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
+$PDO_SRC->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 echo "open src".PHP_EOL;
 
 #打开目标数据库
 $PDO_DEST = new PDO($dest_db,_DB_USERNAME_,_DB_PASSWORD_,array(PDO::ATTR_PERSISTENT=>true));
-$PDO_DEST->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
+$PDO_DEST->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 echo "open dest".PHP_EOL;
 
+
 #删除目标表中所有数据
-$query = "DELETE FROM ".$dest_table." WHERE true";
-$stmt = $PDO_DEST->prepare($query);
-if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
-    $error = $PDO_DEST->errorInfo();
-    echo "error - $error[2] ";
+fwrite(STDOUT,"deleting date".PHP_EOL) ;
+try{
+	$query = "DELETE FROM ".$dest_table;
+	$stmt = $PDO_DEST->prepare($query);
+	$stmt->execute();
+}catch(PDOException $e){
+	fwrite(STDERR,"error:".$e->getMessage());
 	exit;
 }
-
-$stmt->execute();
-echo "delete dest".PHP_EOL;
+fwrite(STDOUT,"deleted date".PHP_EOL) ;
 
 // 开始一个事务,关闭自动提交
 $count = 0;
@@ -40,12 +43,22 @@ echo "begin Transaction".PHP_EOL;
 $PDO_DEST->beginTransaction();
 
 $query = "INSERT INTO ".$dest_table." (id, book , paragraph , word_begin , word_end , length , count , text , html,sim_sents ) VALUES ( ? , ? , ? , ? , ? , ? , ? , ? , ? ,?)";
-$stmtDEST = $PDO_DEST->prepare($query);
+try{
+	$stmtDEST = $PDO_DEST->prepare($query);
+}catch(PDOException $e){
+	fwrite(STDERR,"error:".$e->getMessage());
+	exit;
+}
 
 #从源数据表中读取
 $query = "SELECT *  FROM ".$src_table." WHERE true order by id asc";
-$stmtSrc = $PDO_SRC->prepare($query);
-$stmtSrc->execute();
+try{
+	$stmtSrc = $PDO_SRC->prepare($query);
+	$stmtSrc->execute();
+}catch(PDOException $e){
+	fwrite(STDERR,"error:".$e->getMessage());
+	exit;
+}
 
 $data = array();
 $currMergeCell = 1;
@@ -75,15 +88,15 @@ while($srcData = $stmtSrc->fetch(PDO::FETCH_ASSOC)){
 		$data["count"] += $srcData["count"];
 		$currMergeCell--;
 		if($currMergeCell==1){
-			$stmtDEST->execute($currData);
+			try{					
+				$stmtDEST->execute($currData);		
+			}catch(PDOException $e){
+				fwrite(STDERR,"error:".$e->getMessage().implode(',',$currData));
+				exit;
+			}
 		}
 	}
-    
-	if (!$stmtDEST || ($stmtDEST && $stmtDEST->errorCode() != 0)) {
-		$error = $PDO_DEST->errorInfo();
-		echo "error - $error[2] ";
-		exit;
-	}			
+    		
 	$count++;
 	if($count%10000==0){
 		echo "finished $count".PHP_EOL;

+ 15 - 14
deploy/migaration/20211126220400-pali_sent_index-upgrade.php

@@ -12,29 +12,30 @@ echo "migarate pali_sent_index".PHP_EOL;
 
 #打开目标数据库
 $PDO_DEST = new PDO($dest_db,_DB_USERNAME_,_DB_PASSWORD_,array(PDO::ATTR_PERSISTENT=>true));
-$PDO_DEST->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
+$PDO_DEST->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 echo "open dest".PHP_EOL;
 
 #删除目标表中所有数据
-$query = "DELETE FROM ".$dest_table." WHERE true";
-$stmt = $PDO_DEST->prepare($query);
-if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
-    $error = $PDO_DEST->errorInfo();
-    echo "error - $error[2] ";
+fwrite(STDOUT,"deleting date".PHP_EOL) ;
+try{
+	$query = "DELETE FROM ".$dest_table;
+	$stmt = $PDO_DEST->prepare($query);
+	$stmt->execute();
+}catch(PDOException $e){
+	fwrite(STDERR,"error:".$e->getMessage());
 	exit;
 }
-$stmt->execute();
-echo "delete dest".PHP_EOL;
+fwrite(STDOUT,"deleted date".PHP_EOL) ;
 
 #插入数据
-$query = "INSERT INTO ".$dest_table." (book, para, strlen ) SELECT book,paragraph,sum(length) FROM "._PG_TABLE_PALI_SENT_." where true group by book,paragraph;";
-$stmt = $PDO_DEST->prepare($query);
-if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
-    $error = $PDO_DEST->errorInfo();
-    echo "error - $error[2] ";
+$query = "INSERT INTO ".$dest_table." (book, para, strlen ) SELECT book,paragraph,sum(length) FROM "._PG_TABLE_PALI_SENT_." group by book,paragraph;";
+try{
+	$stmt = $PDO_DEST->prepare($query);
+	$stmt->execute();
+}catch(PDOException $e){
+	fwrite(STDERR,"error:".$e->getMessage());
 	exit;
 }
-$stmt->execute();
 echo "insert dest".PHP_EOL;
 
 echo "done".PHP_EOL;

+ 31 - 19
deploy/migaration/20211127214800_sent_sim.php

@@ -13,25 +13,25 @@ $dest_table=_PG_TABLE_SENT_SIM_;#目标表名
 echo "migarate sent_sim".PHP_EOL;
 #打开源数据库
 $PDO_SRC = new PDO($src_db,_DB_USERNAME_,_DB_PASSWORD_,array(PDO::ATTR_PERSISTENT=>true));
-$PDO_SRC->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
+$PDO_SRC->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 echo "open src".PHP_EOL;
 
 #打开目标数据库
 $PDO_DEST = new PDO($dest_db,_DB_USERNAME_,_DB_PASSWORD_,array(PDO::ATTR_PERSISTENT=>true));
-$PDO_DEST->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
+$PDO_DEST->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 echo "open dest".PHP_EOL;
 
 #删除目标表中所有数据
-$query = "DELETE FROM ".$dest_table." WHERE true";
-$stmt = $PDO_DEST->prepare($query);
-if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
-    $error = $PDO_DEST->errorInfo();
-    echo "error - $error[2] ";
+fwrite(STDOUT,"deleting date".PHP_EOL) ;
+try{
+	$query = "DELETE FROM ".$dest_table;
+	$stmt = $PDO_DEST->prepare($query);
+	$stmt->execute();
+}catch(PDOException $e){
+	fwrite(STDERR,"error:".$e->getMessage());
 	exit;
 }
-
-$stmt->execute();
-echo "delete dest".PHP_EOL;
+fwrite(STDOUT,"deleted date".PHP_EOL) ;
 
 // 开始一个事务,关闭自动提交
 $count = 0;
@@ -40,25 +40,37 @@ echo "begin Transaction".PHP_EOL;
 $PDO_DEST->beginTransaction();
 
 $query = "INSERT INTO ".$dest_table." (sent1, sent2 , sim ) VALUES ( ? , ? , ? )";
-$stmtDEST = $PDO_DEST->prepare($query);
+try{
+	$stmtDEST = $PDO_DEST->prepare($query);
+}catch(PDOException $e){
+	fwrite(STDERR,"error:".$e->getMessage());
+	exit;
+}
 
 #从源数据表中读取
 $query = "SELECT *  FROM ".$src_table." WHERE true ";
-$stmtSrc = $PDO_SRC->prepare($query);
-$stmtSrc->execute();
+try{
+	$stmtSrc = $PDO_SRC->prepare($query);
+	$stmtSrc->execute();
+}catch(PDOException $e){
+	fwrite(STDERR,"error:".$e->getMessage());
+	exit;
+}
 
 while($srcData = $stmtSrc->fetch(PDO::FETCH_ASSOC)){
 	#插入目标表
-    $stmtDEST->execute(array(
+	$data = array(
 					(int)$srcData["sent1"],
 					(int)$srcData["sent2"],
 					(int)$srcData["sim"]
-				));
-	if (!$stmtDEST || ($stmtDEST && $stmtDEST->errorCode() != 0)) {
-		$error = $PDO_DEST->errorInfo();
-		echo "error - $error[2] ";
+	);
+	try{					
+		$stmtDEST->execute($data);		
+	}catch(PDOException $e){
+		fwrite(STDERR,"error:".$e->getMessage().implode(',',$data));
 		exit;
-	}			
+	}
+		
 	$count++;
 	if($count%10000==0){
 		echo "finished $count".PHP_EOL;

+ 14 - 13
deploy/migaration/20211127214900-sent_sim_index.php

@@ -13,29 +13,30 @@ echo "migarate sent_sim_index".PHP_EOL;
 
 #打开目标数据库
 $PDO_DEST = new PDO($dest_db,_DB_USERNAME_,_DB_PASSWORD_,array(PDO::ATTR_PERSISTENT=>true));
-$PDO_DEST->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
+$PDO_DEST->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 echo "open dest".PHP_EOL;
 
 #删除目标表中所有数据
-$query = "DELETE FROM ".$dest_table;
-$stmt = $PDO_DEST->prepare($query);
-if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
-    $error = $PDO_DEST->errorInfo();
-    echo "error - $error[2] ";
+fwrite(STDOUT,"deleting date".PHP_EOL) ;
+try{
+	$query = "DELETE FROM ".$dest_table;
+	$stmt = $PDO_DEST->prepare($query);
+	$stmt->execute();
+}catch(PDOException $e){
+	fwrite(STDERR,"error:".$e->getMessage());
 	exit;
 }
-$stmt->execute();
-echo "delete dest".PHP_EOL;
+fwrite(STDOUT,"deleted date".PHP_EOL) ;
 
 #插入数据
 $query = "INSERT INTO ".$dest_table." (sent_id, count ) SELECT sent1,count(*) FROM "._PG_TABLE_SENT_SIM_." group by sent1;";
-$stmt = $PDO_DEST->prepare($query);
-if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
-    $error = $PDO_DEST->errorInfo();
-    echo "error - $error[2] ";
+try{
+	$stmt = $PDO_DEST->prepare($query);
+	$stmt->execute();
+}catch(PDOException $e){
+	fwrite(STDERR,"error:".$e->getMessage());
 	exit;
 }
-$stmt->execute();
 echo "insert dest".PHP_EOL;
 
 echo "done".PHP_EOL;

+ 25 - 17
deploy/migaration/20211202084900_init_pali_serieses.php

@@ -22,20 +22,20 @@ echo "open src".PHP_EOL;
 
 #打开目标数据库
 $PDO_DEST = new PDO($dest_db,_DB_USERNAME_,_DB_PASSWORD_,array(PDO::ATTR_PERSISTENT=>true));
-$PDO_DEST->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
+$PDO_DEST->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 echo "open dest".PHP_EOL;
 
 #删除目标表中所有数据
-$query = "DELETE FROM ".$dest_table." WHERE true";
-$stmt = $PDO_DEST->prepare($query);
-if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
-    $error = $PDO_DEST->errorInfo();
-    echo "error - $error[2] ";
+fwrite(STDOUT,"deleting date".PHP_EOL) ;
+try{
+	$query = "DELETE FROM ".$dest_table;
+	$stmt = $PDO_DEST->prepare($query);
+	$stmt->execute();
+}catch(PDOException $e){
+	fwrite(STDERR,"error:".$e->getMessage());
 	exit;
 }
-
-$stmt->execute();
-echo "delete dest".PHP_EOL;
+fwrite(STDOUT,"deleted date".PHP_EOL) ;
 
 // 开始一个事务,关闭自动提交
 $count = 0;
@@ -44,25 +44,33 @@ echo "begin Transaction".PHP_EOL;
 $PDO_DEST->beginTransaction();
 
 $query = "INSERT INTO ".$dest_table." (id, book , paragraph , title ) VALUES ( ? , ? , ? , ? )";
-$stmtDEST = $PDO_DEST->prepare($query);
+try{
+	$stmtDEST = $PDO_DEST->prepare($query);
+}catch(PDOException $e){
+	fwrite(STDERR,"error:".$e->getMessage());
+	exit;
+}
+
 
 #从源数据表中读取
 $row=0;
-
+$count = 0;
 while (($data = fgetcsv($fp, 0, ',')) !== false){
 	if($row>0){
 		#插入目标表
-		$stmtDEST->execute(array(
+		$date= array(
 			(int)$data[0],
 			(int)$data[1],
 			(int)$data[2],
 			$data[3],
-		));
-		if (!$stmtDEST || ($stmtDEST && $stmtDEST->errorCode() != 0)) {
-			$error = $PDO_DEST->errorInfo();
-			echo "error - $error[2] ";
+		);
+		try{					
+			$stmtDEST->execute($data);		
+		}catch(PDOException $e){
+			fwrite(STDERR,"error:".$e->getMessage().implode(',',$data));
 			exit;
 		}
+		$count++;
 	}	
 	$row++;
 }
@@ -70,7 +78,7 @@ fclose($fp);
 
 // 提交更改
 $PDO_DEST->commit();
-echo "done".PHP_EOL;
+echo "done $count row".PHP_EOL;