Jelajahi Sumber

使用新的table配置文件

visuddhinanda 4 tahun lalu
induk
melakukan
6161fc6f63

+ 10 - 8
database/migrations/2021_12_28_220331_create_res_indices_table.php

@@ -22,17 +22,19 @@ class CreateResIndicesTable extends Migration
             $table->integer('level');
             $table->integer('type');
             $table->string('language',16);
-            $table->string('author',256);
-            $table->integer('editor');
-            $table->integer('share');
+            $table->string('author',256)->nullable();
+            $table->integer('editor')->default(0);
+            $table->integer('share')->default(1);
             $table->integer('edition')->default(1);
             $table->integer('hit')->default(0);
-            $table->integer('album');
-            $table->string('tag',1024);
-            $table->string('summary',1024);
+            $table->integer('album')->nullable();
+            $table->string('tag',1024)->nullable();
+            $table->string('summary',1024)->nullable();
+            $table->bigInteger('create_time');
+            $table->bigInteger('update_time');
             
-			$table->timestamps('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
-            $table->timestamps('updated_at')->default(DB::raw('CURRENT_TIMESTAMP'));
+            $table->timestamp('created_at')->useCurrent();
+			$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();
 
         });
     }

+ 7 - 7
database/migrations/2021_12_28_222244_create_pali_texts_table.php

@@ -22,13 +22,13 @@ class CreatePaliTextsTable extends Migration
             $table->text('toc');
             $table->text('text');
             $table->text('html');
-            $table->integer('lenght');
-            $table->integer('album_index');
-            $table->integer('chapter_len');
-            $table->integer('next_chapter');
-            $table->integer('prev_chapter');
-            $table->integer('parent');
-            $table->integer('chapter_strlen');
+            $table->integer('lenght')->nullable();
+            $table->integer('album_index')->nullable();
+            $table->integer('chapter_len')->nullable();
+            $table->integer('next_chapter')->nullable();
+            $table->integer('prev_chapter')->nullable();
+            $table->integer('parent')->nullable();
+            $table->integer('chapter_strlen')->nullable();
 
             $table->timestamps();
 

+ 1 - 1
database/migrations/2021_12_29_021525_create_word_indices_table.php

@@ -22,7 +22,7 @@ class CreateWordIndicesTable extends Migration
             $table->integer('bold')->default(0);
             $table->integer('is_base')->default(0);
             $table->integer('len')->default(0);
-            $table->integer('final');
+            $table->integer('final')->default(0);
 			$table->timestamp('created_at')->useCurrent();
         });
     }

+ 20 - 12
public/app/admin/word_index_weight_refresh.php

@@ -5,11 +5,19 @@
 require_once __DIR__.'/../config.php';
 require_once __DIR__.'/word_index_weight_table.php';
 
-define("_PG_DB_WORD_INDEX_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
-define("_PG_TABLE_WORD_INDEX_", "word_indexs");
+set_exception_handler(function($e){
+	fwrite(STDERR,"error-msg:".$e->getMessage().PHP_EOL);
+	fwrite(STDERR,"error-file:".$e->getFile().PHP_EOL);
+	fwrite(STDERR,"error-line:".$e->getLine().PHP_EOL);
+	exit;
+});
 
-define("_PG_DB_PALI_INDEX_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
-define("_PG_TABLE_WORD_", "words");
+
+define("__DB_WORD_INDEX__", _PG_DB_WORD_INDEX_);
+define("__TABLE_WORD_INDEX__", _PG_TABLE_WORD_INDEX_);
+
+define("__DB_PALI_INDEX__", _PG_DB_PALI_INDEX_);
+define("__TABLE_WORD__", _PG_TABLE_WORD_);
 
 if (isset($_GET["from"])) {
     $from = (int)$_GET["from"];
@@ -26,17 +34,17 @@ if (isset($_GET["from"])) {
     }
 }
 
-$dh_word = new PDO( _PG_DB_WORD_INDEX_, _DB_USERNAME_, _DB_PASSWORD_);
+$dh_word = new PDO( __DB_WORD_INDEX__, _DB_USERNAME_, _DB_PASSWORD_);
 $dh_word->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
-$dh_pali = new PDO( _PG_DB_PALI_INDEX_, _DB_USERNAME_, _DB_PASSWORD_);
+$dh_pali = new PDO( __DB_PALI_INDEX__, _DB_USERNAME_, _DB_PASSWORD_);
 $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=?";
+    $query = "SELECT max(paragraph) from ".__TABLE_WORD__." where book=?";
 	try {
 		//code...
 		$stmt = $dh_pali->prepare($query);
@@ -52,11 +60,11 @@ for ($i = $from; $i <= $to; $i++) {
         echo "段落数量:$max_para ";
         for ($j = 0; $j <= $max_para; $j++) {
             # code...
-            $query = "SELECT id,book,wordindex,bold from "._PG_TABLE_WORD_." where book={$i} and paragraph={$j} order by id ASC";
+            $query = "SELECT id,book,wordindex,bold from ".__TABLE_WORD__." where book={$i} and paragraph={$j} order by id ASC";
             $stmt = $dh_pali->query($query);
             $fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
 
-            $query = "SELECT wordindex,count(*) as co from "._PG_TABLE_WORD_." where book={$i} and paragraph={$j} group by wordindex";
+            $query = "SELECT wordindex,count(*) as co from ".__TABLE_WORD__." where book={$i} and paragraph={$j} group by wordindex";
             $stmt = $dh_pali->query($query);
             $fetch_voc = $stmt->fetchAll(PDO::FETCH_ASSOC);
 			
@@ -96,7 +104,7 @@ for ($i = $from; $i <= $to; $i++) {
                     $bold_count = $end - $begin + 1;
                     if ($bold_count == 1) {
 
-                        $query = "SELECT * from "._PG_TABLE_WORD_INDEX_." where id=" . $fetch[$iWord]["wordindex"];
+                        $query = "SELECT * from ".__TABLE_WORD_INDEX__." where id=" . $fetch[$iWord]["wordindex"];
                         $stmt_word = $dh_word->query($query);
                         $wordinfo = $stmt_word->fetch(PDO::FETCH_ASSOC);
                         $bookId = (int) $fetch[$iWord]["book"];
@@ -114,7 +122,7 @@ for ($i = $from; $i <= $to; $i++) {
                         for ($iBold = $begin; $iBold <= $end; $iBold++) {
                             # code...
                             $boldid = $fetch[$iBold]["wordindex"];
-                            $query = "SELECT len from "._PG_TABLE_WORD_INDEX_." where id=" . $boldid;
+                            $query = "SELECT len from ".__TABLE_WORD_INDEX__." where id=" . $boldid;
                             $stmt_bold = $dh_word->query($query);
                             $wordbold = $stmt_bold->fetch(PDO::FETCH_ASSOC);
                             $len_sum += $wordbold["len"];
@@ -130,7 +138,7 @@ for ($i = $from; $i <= $to; $i++) {
             }
             # 将整段权重写入据库
             $dh_pali->beginTransaction();
-            $query = "UPDATE "._PG_TABLE_WORD_." set weight = ? where id=? ";
+            $query = "UPDATE ".__TABLE_WORD__." set weight = ? where id=? ";
             $stmt_weight = $dh_pali->prepare($query);
             foreach ($fetch as $key => $value) {
                 $stmt_weight->execute(array($value["weight"], $value["id"]));

+ 35 - 90
public/app/config.sample.php

@@ -55,115 +55,84 @@ define("Redis",[
 /*
 数据表
 */
+#表设置,此行不能更改
+require_once __DIR__."/table.php";
 
+/*
+前缀:
+Sqlite:  _SQLITE_
+PostgreSql:  _PG_
+*/
 //语料库数据表 pali canon db file 
-
 /*
 巴利语料模版表
 运行app/install/db_insert_templet.php 刷库
 */
-#sqlite
-//define("_FILE_DB_PALICANON_TEMPLET_","sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/templet.db3");
-//define("_TABLE_PALICANON_TEMPLET_","wbw_templates");
 
-#pg
-define("_FILE_DB_PALICANON_TEMPLET_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
-define("_TABLE_PALICANON_TEMPLET_","wbw_templates");
+define("_FILE_DB_PALICANON_TEMPLET_", _PG_DB_PALICANON_TEMPLET_);
+define("_TABLE_PALICANON_TEMPLET_",_PG_TABLE_PALICANON_TEMPLET_);
 
 /*
 标题资源表
 app/install/db_update_toc.php 刷库
 */
-#sqlite
-//define("_FILE_DB_RESRES_INDEX_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/res.db3");
-//define("_TABLE_RES_INDEX_","res_index");
 
-#pg
-define("_FILE_DB_RESRES_INDEX_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
-define("_TABLE_RES_INDEX_","res_indices");
+define("_FILE_DB_RESRES_INDEX_", _PG_DB_RESRES_INDEX_);
+define("_TABLE_RES_INDEX_",_PG_TABLE_RES_INDEX_);
 
 /*
 巴利语料段落表
 刷库 app/install/db_insert_palitext.php
 更新 app/install/db_update_palitext.php
 */
-#sqlite
-//define("_FILE_DB_PALITEXT_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/pali_text.db3");
-//define("_TABLE_PALI_TEXT_","pali_text");
-//define("_TABLE_PALI_BOOK_NAME_","books");
 
-#pg
-define("_FILE_DB_PALITEXT_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
-define("_TABLE_PALI_TEXT_","pali_texts");
-define("_TABLE_PALI_BOOK_NAME_","book_titles");
+define("_FILE_DB_PALITEXT_", _PG_DB_PALITEXT_);
+define("_TABLE_PALI_TEXT_",_PG_TABLE_PALI_TEXT_);
+define("_TABLE_PALI_BOOK_NAME_",_PG_TABLE_PALI_BOOK_NAME_);
 
 #单词表部分
 /*
 以书为单位的单词汇总表
 填充 /app/install/db_insert_bookword_from_csv.php
 */
-//sqlite
-//define("_FILE_DB_BOOK_WORD_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/bookword.db3");
-//define("_TABLE_BOOK_WORD_", "bookword");
 
-//PostgreSQL
-define("_FILE_DB_BOOK_WORD_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
-define("_TABLE_BOOK_WORD_", "book_words");
+define("_FILE_DB_BOOK_WORD_", _PG_FILE_DB_BOOK_WORD_);
+define("_TABLE_BOOK_WORD_", _PG_TABLE_BOOK_WORD_);
 
 /*
 单词索引
 /app/install/db_insert_word_from_csv.php
 /app/admin/word_index_weight_refresh.php
 */
-//sqlite
-//define("_FILE_DB_PALI_INDEX_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/paliindex.db3");
-//define("_TABLE_WORD_", "word");
 
-define("_FILE_DB_PALI_INDEX_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
-define("_TABLE_WORD_", "word_lists");
+define("_FILE_DB_PALI_INDEX_", _PG_DB_PALI_INDEX_);
+define("_TABLE_WORD_", _PG_TABLE_WORD_);
 
 /*
 92万词
 /app/install/db_insert_wordindex_from_csv.php
 */
-//sqlite
-//define("_FILE_DB_WORD_INDEX_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/wordindex.db3");
-//define("_TABLE_WORD_INDEX_", "wordindex");
 
-//PostgreSQL
-define("_FILE_DB_WORD_INDEX_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
-define("_TABLE_WORD_INDEX_", "word_indices");
+define("_FILE_DB_WORD_INDEX_", _PG_DB_WORD_INDEX_);
+define("_TABLE_WORD_INDEX_", _PG_TABLE_WORD_INDEX_);
 
 //单词索引=92万词+单词索引
-//sqlite
-//define("_FILE_DB_INDEX_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/index.db3");
 
 //PostgreSQL
-define("_FILE_DB_INDEX_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
+define("_FILE_DB_INDEX_", _PG_DB_INDEX_);
 
 //黑体字数据表
 //sqlite
-define("_FILE_DB_BOLD_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/bold.db3");
-define("_TABLE_WORD_BOLD_", "bold");
-
-//PostgreSQL
-//define("_FILE_DB_BOLD_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
-//define("_TABLE_WORD_BOLD_", "bolds");
+define("_FILE_DB_BOLD_", "sqlite:" . _SQLITE_DB_BOLD_);
+define("_TABLE_WORD_BOLD_", _SQLITE_TABLE_WORD_BOLD_);
 
 /*
 单词分析表
 数据迁移: php /deploy/migaration/word_statistics.php
 */
-//sqlite
-//define("_FILE_DB_STATISTICS_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/word_statistics.db3");
-//define("_TABLE_WORD_STATISTICS_", "word_statistics");
-
-//PostgreSQL
-define("_FILE_DB_STATISTICS_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
-define("_TABLE_WORD_STATISTICS_", "word_statistics");
 
-define("_SRC_DB_STATISTICS_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/word_statistics.db3");
-define("_SRC_TABLE_WORD_STATISTICS_", "word");
+define("_FILE_DB_STATISTICS_", _PG_DB_STATISTICS_);
+define("_TABLE_WORD_STATISTICS_", _PG_TABLE_WORD_STATISTICS_);
 
 
 /*
@@ -173,21 +142,11 @@ define("_SRC_TABLE_WORD_STATISTICS_", "word");
 数据迁移: php ./deploy/migaration/20211126220400-pali_sent_index-upgrade.php
 
 */
-//sqlite
-//define("_FILE_DB_PALI_SENTENCE_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/pali_sent1.db3");
-//define("_TABLE_PALI_SENT_", "pali_sent");
-//define("_TABLE_PALI_SENT_ORG_", "pali_sent_org");
-//define("_TABLE_PALI_SENT_INDEX_", "pali_sent_index");
-
-//PostgreSQL
-define("_FILE_DB_PALI_SENTENCE_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
-define("_TABLE_PALI_SENT_", "pali_sentences");
-define("_TABLE_PALI_SENT_ORG_", "pali_sent_orgs");
-define("_TABLE_PALI_SENT_INDEX_", "pali_sent_indices");
 
-define("_SRC_DB_PALI_SENTENCE_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/pali_sent1.db3");
-define("_TABLE_SRC_PALI_SENT_", "pali_sent");
-define("_TABLE_SRC_PALI_SENT_INDEX_", "pali_sent_index");
+define("_FILE_DB_PALI_SENTENCE_", _PG_DB_PALI_SENTENCE_);
+define("_TABLE_PALI_SENT_", _PG_TABLE_PALI_SENT_);
+define("_TABLE_PALI_SENT_ORG_", _PG_TABLE_PALI_SENT_);
+define("_TABLE_PALI_SENT_INDEX_", _PG_TABLE_PALI_SENT_);
 
 /*
 相似句
@@ -197,34 +156,20 @@ php ./deploy/migaration/20211127214900-sent_sim_index.php
 redis: 
 php ./app/pali_sent/redis_upgrade_pali_sent.php
 */
-//sqlite
-//define("_FILE_DB_PALI_SENTENCE_SIM_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/pali_sim.db3");
-//define("_TABLE_SENT_SIM_", "sent_sim");
-//define("_TABLE_SENT_SIM_INDEX_", "sent_sim_index");
-
-//PostgreSQL
-define("_FILE_DB_PALI_SENTENCE_SIM_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
-define("_TABLE_SENT_SIM_", "sent_sims");
-define("_TABLE_SENT_SIM_INDEX_", "sent_sim_indices");
 
-define("_SRC_DB_PALI_SENTENCE_SIM_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/pali_sim.db3");
-define("_TABLE_SRC_SENT_SIM_", "sent_sim");
-define("_TABLE_SRC_SENT_SIM_INDEX_", "sent_sim_index");
+define("_FILE_DB_PALI_SENTENCE_SIM_", _PG_DB_PALI_SENTENCE_SIM_);
+define("_TABLE_SENT_SIM_", _PG_TABLE_SENT_SIM_);
+define("_TABLE_SENT_SIM_INDEX_", _PG_TABLE_SENT_SIM_INDEX_);
 
 /*
 完成度
 数据迁移
 php ./app/upgrade/upgrade_pali_toc.php
 */
-//sqlite
-//define("_FILE_DB_PALI_TOC_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/pali_toc.db3");
-//define("_TABLE_PROGRESS_", "progress");
-//define("_TABLE_PROGRESS_CHAPTER_", "progress_chapter");
 
-//PostgreSQL
-define("_FILE_DB_PALI_TOC_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
-define("_TABLE_PROGRESS_", "progress");
-define("_TABLE_PROGRESS_CHAPTER_", "progress_chapters");
+define("_FILE_DB_PALI_TOC_", _PG_DB_PALI_TOC_);
+define("_TABLE_PROGRESS_", _PG_TABLE_PROGRESS_);
+define("_TABLE_PROGRESS_CHAPTER_", _PG_TABLE_PROGRESS_CHAPTER_);
 
 
 //页码对应

+ 8 - 3
public/app/install/db_insert_bookword_from_csv_cli.php

@@ -3,8 +3,13 @@
 生成 巴利原文段落表
  */
 require_once __DIR__."/../config.php";
-require_once __DIR__.'/../public/_pdo.php';
 
+set_exception_handler(function($e){
+	fwrite(STDERR,"error-msg:".$e->getMessage().PHP_EOL);
+	fwrite(STDERR,"error-file:".$e->getFile().PHP_EOL);
+	fwrite(STDERR,"error-line:".$e->getLine().PHP_EOL);
+	exit;
+});
 
 echo "Insert Pali Text To DB".PHP_EOL;
 
@@ -30,8 +35,8 @@ $fileNums = 0;
 $log = "";
 
 //PostgreSQL
-define("_DB_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
-define("_TABLE_", "book_words");
+define("_DB_",_PG_DB_BOOK_WORD_);
+define("_TABLE_", _PG_TABLE_BOOK_WORD_);
 
 global $dbh_word_index;
 $dns = _DB_;

+ 11 - 6
public/app/install/db_insert_palitext_cli.php

@@ -3,10 +3,15 @@
 生成 巴利原文段落表
  */
 require_once __DIR__."/../config.php";
-require_once __DIR__.'/../public/_pdo.php';
 
-define("_PG_DB_PALITEXT_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
-define("_PG_TABLE_PALI_TEXT_","pali_texts");
+set_exception_handler(function($e){
+	fwrite(STDERR,"error-msg:".$e->getMessage().PHP_EOL);
+	fwrite(STDERR,"error-file:".$e->getFile().PHP_EOL);
+	fwrite(STDERR,"error-line:".$e->getLine().PHP_EOL);
+	exit;
+});
+define("_DB_", _PG_DB_PALITEXT_);
+define("_TABLE_",_PG_TABLE_PALI_TEXT_);
 
 echo "Insert Pali Text To DB".PHP_EOL;
 
@@ -40,7 +45,7 @@ if ($to == 0 || $to >= $fileNums) {
     $to = $fileNums - 1;
 }
 
-$dns = _PG_DB_PALITEXT_;
+$dns = _DB_;
 $dbh = new PDO($dns, _DB_USERNAME_, _DB_PASSWORD_, array(PDO::ATTR_PERSISTENT => true));
 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
@@ -109,7 +114,7 @@ for ($from=$_from-1; $from < $to; $from++) {
     }
     
     #删除 旧数据
-    $query = "DELETE FROM "._PG_TABLE_PALI_TEXT_." WHERE book=?";
+    $query = "DELETE FROM "._TABLE_." WHERE book=?";
 	$stmt = $dbh->prepare($query);
 	try{
 		$stmt->execute(array($from+1));
@@ -122,7 +127,7 @@ for ($from=$_from-1; $from < $to; $from++) {
     // 开始一个事务,关闭自动提交
     $dbh->beginTransaction();
     
-    $query = "INSERT INTO "._PG_TABLE_PALI_TEXT_." ( book , paragraph , level , class , toc , text , html , lenght ) VALUES ( ? , ? , ? , ? , ? , ? , ? , ? )";
+    $query = "INSERT INTO "._TABLE_." ( book , paragraph , level , class , toc , text , html , lenght ) VALUES ( ? , ? , ? , ? , ? , ? , ? , ? )";
     $stmt = $dbh->prepare($query);
     foreach ($arrInserString as $oneParam) {
         if ($oneParam[3] < 100) {

+ 2 - 3
public/app/install/db_insert_templet_cli.php

@@ -3,7 +3,6 @@
 用拆分好的三藏数据 生成模板库
  */
 require_once __DIR__."/../config.php";
-require_once __DIR__.'/../public/_pdo.php';
 
 set_exception_handler(function($e){
 	fwrite(STDERR,"error-msg:".$e->getMessage().PHP_EOL);
@@ -29,8 +28,8 @@ if ($_to > 217) {
 
 
 #pg
-define("_DB_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
-define("_TABLE_","wbw_templates");
+define("_DB_", _PG_DB_PALICANON_TEMPLET_);
+define("_TABLE_",_PG_TABLE_PALICANON_TEMPLET_);
 
 
 $filelist = array();

+ 10 - 3
public/app/install/db_insert_word_from_csv_cli.php

@@ -3,8 +3,16 @@
 生成 巴利原文段落表
  */
 require_once __DIR__."/../config.php";
-require_once __DIR__.'/../public/_pdo.php';
 
+set_exception_handler(function($e){
+	fwrite(STDERR,"error-msg:".$e->getMessage().PHP_EOL);
+	fwrite(STDERR,"error-file:".$e->getFile().PHP_EOL);
+	fwrite(STDERR,"error-line:".$e->getLine().PHP_EOL);
+	exit;
+});
+
+define("_DB_", _PG_DB_PALI_INDEX_);
+define("_TABLE_", _PG_TABLE_WORD_);
 
 echo "Insert Word To DB".PHP_EOL;
 
@@ -28,8 +36,7 @@ $filelist = array();
 $fileNums = 0;
 $log = "";
 
-define("_DB_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
-define("_TABLE_", "words");
+
 
 global $dbh_word_index;
 $dns = _DB_;

+ 12 - 5
public/app/install/db_insert_wordindex_from_csv_cli.php

@@ -3,8 +3,17 @@
 生成 巴利原文段落表
  */
 require_once __DIR__."/../config.php";
-require_once __DIR__.'/../public/_pdo.php';
 
+set_exception_handler(function($e){
+	fwrite(STDERR,"error-msg:".$e->getMessage().PHP_EOL);
+	fwrite(STDERR,"error-file:".$e->getFile().PHP_EOL);
+	fwrite(STDERR,"error-line:".$e->getLine().PHP_EOL);
+	exit;
+});
+
+//PostgreSQL
+define("_DB_", _PG_DB_WORD_INDEX_);
+define("_TABLE_", _PG_TABLE_WORD_INDEX_);
 
 echo "Insert Word Index To DB".PHP_EOL;
 
@@ -12,11 +21,9 @@ echo "Insert Word Index To DB".PHP_EOL;
 $dirLog = _DIR_LOG_ . "/";
 $log = "";
 
-//PostgreSQL
-define("_DB_WORD_INDEX_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
-define("_TABLE_", "word_indexs");
 
-$dns = _DB_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_EXCEPTION);
 

+ 10 - 3
public/app/install/db_update_palitext_cli.php

@@ -3,10 +3,17 @@
 生成 巴利原文段落表
  */
 require_once __DIR__."/../config.php";
-require_once __DIR__.'/../public/_pdo.php';
+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");
+set_exception_handler(function($e){
+	fwrite(STDERR,"error-msg:".$e->getMessage().PHP_EOL);
+	fwrite(STDERR,"error-file:".$e->getFile().PHP_EOL);
+	fwrite(STDERR,"error-line:".$e->getLine().PHP_EOL);
+	exit;
+});
+
+define("_DB_PALITEXT_", _PG_DB_PALITEXT_);
+define("_TABLE_",_PG_TABLE_PALI_TEXT_);
 
 echo "Update Pali Text ".PHP_EOL;
 

+ 9 - 3
public/app/install/db_update_toc_cli.php

@@ -1,10 +1,16 @@
 <?php
 require_once __DIR__."/../config.php";
-require_once __DIR__.'/../public/_pdo.php';
 require_once __DIR__."/../public/function.php";
 
-define("_DB_RES_INDEX_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
-define("_TABLE_","res_indexs");
+set_exception_handler(function($e){
+	fwrite(STDERR,"error-msg:".$e->getMessage().PHP_EOL);
+	fwrite(STDERR,"error-file:".$e->getFile().PHP_EOL);
+	fwrite(STDERR,"error-line:".$e->getLine().PHP_EOL);
+	exit;
+});
+
+define("_DB_RES_INDEX_", _PG_DB_RESRES_INDEX_);
+define("_TABLE_",_PG_TABLE_RES_INDEX_);
 
 echo "Update toc to res_index".PHP_EOL;
 

+ 171 - 0
public/app/table.php

@@ -0,0 +1,171 @@
+<?php 
+#表名设置,不能更改
+
+
+//语料库数据表 pali canon db file 
+
+/*
+巴利语料模版表
+运行app/install/db_insert_templet.php 刷库
+*/
+#sqlite
+define("_SQLITE_DB_PALICANON_TEMPLET_","sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/templet.db3");
+define("_SQLITE_TABLE_PALICANON_TEMPLET_","wbw_templates");
+
+#pg
+define("_PG_DB_PALICANON_TEMPLET_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
+define("_PG_TABLE_PALICANON_TEMPLET_","wbw_templates");
+
+/*
+标题资源表
+app/install/db_update_toc.php 刷库
+*/
+#sqlite
+define("_SQLITE_DB_RESRES_INDEX_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/res.db3");
+define("_SQLITE_TABLE_RES_INDEX_","res_index");
+
+#pg
+define("_PG_DB_RESRES_INDEX_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
+define("_PG_TABLE_RES_INDEX_","res_indices");
+
+/*
+巴利语料段落表
+刷库 app/install/db_insert_palitext.php
+更新 app/install/db_update_palitext.php
+*/
+#sqlite
+define("_SQLITE_DB_PALITEXT_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/pali_text.db3");
+define("_SQLITE_TABLE_PALI_TEXT_","pali_text");
+define("_SQLITE_TABLE_PALI_BOOK_NAME_","books");
+
+#pg
+define("_PG_DB_PALITEXT_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
+define("_PG_TABLE_PALI_TEXT_","pali_texts");
+define("_PG_TABLE_PALI_BOOK_NAME_","book_titles");
+
+#单词表部分
+/*
+以书为单位的单词汇总表
+填充 /app/install/db_insert_bookword_from_csv.php
+*/
+//sqlite
+define("_SQLITE_DB_BOOK_WORD_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/bookword.db3");
+define("_SQLITE_TABLE_BOOK_WORD_", "bookword");
+
+//PostgreSQL
+define("_PG_DB_BOOK_WORD_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
+define("_PG_TABLE_BOOK_WORD_", "book_words");
+
+/*
+单词索引
+/app/install/db_insert_word_from_csv.php
+/app/admin/word_index_weight_refresh.php
+*/
+//sqlite
+define("_SQLITE_DB_PALI_INDEX_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/paliindex.db3");
+define("_SQLITE_TABLE_WORD_", "word");
+
+define("_PG_DB_PALI_INDEX_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
+define("_PG_TABLE_WORD_", "word_lists");
+
+/*
+92万词
+/app/install/db_insert_wordindex_from_csv.php
+*/
+//sqlite
+define("_SQLITE_DB_WORD_INDEX_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/wordindex.db3");
+define("_SQLITE_TABLE_WORD_INDEX_", "wordindex");
+
+//PostgreSQL
+define("_PG_DB_WORD_INDEX_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
+define("_PG_TABLE_WORD_INDEX_", "word_indices");
+
+//单词索引=92万词+单词索引
+//sqlite
+define("_SQLITE_DB_INDEX_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/index.db3");
+
+//PostgreSQL
+define("_PG_DB_INDEX_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
+
+//黑体字数据表
+//sqlite
+define("_SQLITE_DB_BOLD_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/bold.db3");
+define("_SQLITE_TABLE_WORD_BOLD_", "bold");
+
+//PostgreSQL
+define("_PG_DB_BOLD_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
+define("_PG_TABLE_WORD_BOLD_", "bolds");
+
+/*
+单词分析表
+数据迁移: php /deploy/migaration/word_statistics.php
+*/
+//sqlite
+define("_SQLITE_DB_STATISTICS_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/word_statistics.db3");
+define("_SQLITE_TABLE_WORD_STATISTICS_", "word_statistics");
+
+//PostgreSQL
+define("_PG_DB_STATISTICS_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
+define("_PG_TABLE_WORD_STATISTICS_", "word_statistics");
+
+
+
+/*
+巴利句子表
+数据迁移: php ./deploy/migaration/20211125155700_pali_sent_org.php
+数据迁移: php ./deploy/migaration/20211125165700-pali_sent-upgrade.php
+数据迁移: php ./deploy/migaration/20211126220400-pali_sent_index-upgrade.php
+
+*/
+//sqlite
+define("_SQLITE_DB_PALI_SENTENCE_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/pali_sent1.db3");
+define("_SQLITE_TABLE_PALI_SENT_", "pali_sent");
+define("_SQLITE_TABLE_PALI_SENT_ORG_", "pali_sent_org");
+define("_SQLITE_TABLE_PALI_SENT_INDEX_", "pali_sent_index");
+
+//PostgreSQL
+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");
+define("_PG_TABLE_PALI_SENT_INDEX_", "pali_sent_indices");
+
+
+/*
+相似句
+数据迁移 
+php ./deploy/migaration/20211127214800_sent_sim.php
+php ./deploy/migaration/20211127214900-sent_sim_index.php
+redis: 
+php ./app/pali_sent/redis_upgrade_pali_sent.php
+*/
+//sqlite
+define("_SQLITE_DB_PALI_SENTENCE_SIM_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/pali_sim.db3");
+define("_SQLITE_TABLE_SENT_SIM_", "sent_sim");
+define("_SQLITE_TABLE_SENT_SIM_INDEX_", "sent_sim_index");
+
+//PostgreSQL
+define("_PG_DB_PALI_SENTENCE_SIM_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
+define("_PG_TABLE_SENT_SIM_", "sent_sims");
+define("_PG_TABLE_SENT_SIM_INDEX_", "sent_sim_indices");
+
+
+/*
+完成度
+数据迁移
+php ./app/upgrade/upgrade_pali_toc.php
+*/
+//sqlite
+define("_SQLITE_DB_PALI_TOC_", "sqlite:" . __DIR__ . "/../tmp/appdata/palicanon/pali_toc.db3");
+define("_SQLITE_TABLE_PROGRESS_", "progress");
+define("_SQLITE_TABLE_PROGRESS_CHAPTER_", "progress_chapter");
+
+//PostgreSQL
+define("_PG_DB_PALI_TOC_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
+define("_PG_TABLE_PROGRESS_", "progress");
+define("_PG_TABLE_PROGRESS_CHAPTER_", "progress_chapters");
+
+
+
+
+
+?>

+ 18 - 7
public/deploy/migaration/20211125155600_word_statistics.php

@@ -1,16 +1,26 @@
 <?php
 require_once __DIR__."/../../app/config.php";
 
-define("_PG_DB_STATISTICS_", _DB_ENGIN_.":host="._DB_HOST_.";port="._DB_PORT_.";dbname="._DB_NAME_.";user="._DB_USERNAME_.";password="._DB_PASSWORD_.";");
-define("_PG_TABLE_WORD_STATISTICS_", "word_statistics");
+set_exception_handler(function($e){
+	fwrite(STDERR,"error-msg:".$e->getMessage().PHP_EOL);
+	fwrite(STDERR,"error-file:".$e->getFile().PHP_EOL);
+	fwrite(STDERR,"error-line:".$e->getLine().PHP_EOL);
+	exit;
+});
+
+$src_db=_SQLITE_DB_STATISTICS_;#源数据库
+$src_table=_SQLITE_TABLE_WORD_STATISTICS_;#源表名
+
+$dest_db=_PG_DB_STATISTICS_;#目标数据库
+$dest_table=_PG_TABLE_WORD_STATISTICS_;#目标表名
 
 #打开源数据库
-$PDO_SRC = new PDO(_SRC_DB_STATISTICS_,_DB_USERNAME_,_DB_PASSWORD_,array(PDO::ATTR_PERSISTENT=>true));
+$PDO_SRC = new PDO($src_db,_DB_USERNAME_,_DB_PASSWORD_,array(PDO::ATTR_PERSISTENT=>true));
 $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 = new PDO($dest_db,_DB_USERNAME_,_DB_PASSWORD_,array(PDO::ATTR_PERSISTENT=>true));
 $PDO_DEST->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 fwrite(STDOUT,"open dest ok".PHP_EOL) ;
 
@@ -18,11 +28,12 @@ fwrite(STDOUT,"open dest ok".PHP_EOL) ;
 fwrite(STDOUT,"deleting date".PHP_EOL) ;
 
 try{
-	$query = "DELETE FROM "._PG_TABLE_WORD_STATISTICS_;
+	$query = "DELETE FROM ".$dest_table;
 	$stmt = $PDO_DEST->prepare($query);
 	$stmt->execute();
 }catch(PDOException $e){
 	fwrite(STDERR,"error:".$e->getMessage());
+	fwrite(STDERR,"error-line:".$e->getLine().PHP_EOL);
 	exit;
 }
 fwrite(STDOUT,"deleted date".PHP_EOL) ;
@@ -34,7 +45,7 @@ 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 ( ? , ? , ? , ? , ? , ? , ? , ? )";
+$query = "INSERT INTO ".$dest_table." ( bookid , word , count , base , end1 , end2 , type , length ) VALUES ( ? , ? , ? , ? , ? , ? , ? , ? )";
 try{
 	$stmtDEST = $PDO_DEST->prepare($query);
 }catch(PDOException $e){
@@ -42,7 +53,7 @@ try{
 	exit;
 }
 #从源数据库中读取
-$query = "SELECT *  FROM "._SRC_TABLE_WORD_STATISTICS_." WHERE true ";
+$query = "SELECT *  FROM ".$src_table;
 
 try{
 	$stmtSrc = $PDO_SRC->prepare($query);