Forráskód Böngészése

:construction: migrate Article

Bhikkhu-Kosalla 4 éve
szülő
commit
119d3868ce

+ 11 - 0
app/Models/Article.php

@@ -0,0 +1,11 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+
+class Article extends Model
+{
+    use HasFactory;
+}

+ 54 - 0
database/migrations/2022_01_28_121154_create_articles_table.php

@@ -0,0 +1,54 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class CreateArticlesTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('articles', function (Blueprint $table) {
+			#使用雪花id
+            $table->bigInteger('id')->primary();
+
+			$table->string('uid',36)->uniqid()->index();
+			$table->bigInteger('parent_id')->nullable()->index();
+			$table->bigInteger('default_channel_id')->nullable()->index();
+			$table->string('title',128)->index();
+			$table->string('subtitle',128)->nullable();
+			$table->string('summary',1024)->nullable();
+			$table->text('cover')->nullable();
+            $table->text('content')->nullable();
+            $table->enum('content_type',['markdown','text','html'])->default('markdown');
+            $table->string('owner',36)->index();
+            $table->bigInteger('owner_id')->index();
+            $table->bigInteger('editor_id')->index();
+			$table->text('setting')->nullable();
+            $table->integer('status')->default(10)->index();
+            $table->string('lang',16)->default('none')->index();
+
+			$table->bigInteger('create_time')->index();
+            $table->bigInteger('modify_time')->index();
+
+			$table->timestamp('created_at')->useCurrent();
+			$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();
+			$table->timestamp('deleted_at')->nullable();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('articles');
+    }
+}

+ 40 - 12
v1/scripts/migrations/20211218093500_articles_copy.php

@@ -5,18 +5,31 @@
 插入时用uuid判断是否曾经插入
 曾经插入就不插入了
 */
-require_once __DIR__."/../../app/config.php";
+require_once __DIR__."/../../../public/app/config.php";
+require_once __DIR__."/../../../public/app/public/snowflakeid.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;
+});
+$start = time();
+# 雪花id
+$snowflake = new SnowFlakeId();
+
+$fpError = fopen(__DIR__.'/log/'.basename($_SERVER['PHP_SELF'],'.php').".err.data.csv",'w');
 
 #user info
 $user_db=_FILE_DB_USERINFO_;#user数据库
 $user_table=_TABLE_USER_INFO_;#user表名
 
 # 
-$src_db = _FILE_SRC_USER_ARTICLE_;#源数据库
-$src_table = _TABLE_SRC_ARTICLE_;#源表名
+$src_db = _SQLITE_DB_USER_ARTICLE_;#源数据库
+$src_table = _SQLITE_TABLE_ARTICLE_;#源表名
 
-$dest_db = _FILE_DB_USER_ARTICLE_;#目标数据库
-$dest_table = _TABLE_ARTICLE_;#目标表名
+$dest_db = _PG_DB_USER_ARTICLE_;#目标数据库
+$dest_table = _PG_TABLE_ARTICLE_;#目标表名
 
 fwrite(STDOUT,"migarate article".PHP_EOL);
 #打开user数据库
@@ -36,6 +49,7 @@ fwrite(STDOUT,"open dest table".PHP_EOL);
 
 $queryInsert = "INSERT INTO ".$dest_table." 
 								(
+                                    id,
 									uid,
 									title,
 									subtitle,
@@ -51,7 +65,7 @@ $queryInsert = "INSERT INTO ".$dest_table."
 									modify_time,
 									updated_at,
 									created_at) 
-									VALUES ( ? , ? , ?, ? , ? ,? , ? , ? , ? , ? , ? , ?,? ,?,?)";
+									VALUES (? , ? , ? , ?, ? , ? ,? , ? , ? , ? , ? , ? , ?,? ,?,?)";
 $stmtDEST = $PDO_DEST->prepare($queryInsert);
 
 $commitData = [];
@@ -69,6 +83,19 @@ $stmtSrc = $PDO_SRC->prepare($query);
 $stmtSrc->execute();
 while($srcData = $stmtSrc->fetch(PDO::FETCH_ASSOC)){
 	$allSrcCount++;
+
+    if($srcData["owner"]=='test6'){
+		$srcData["owner"] = 'f81c7140-64b4-4025-b58c-45a3b386324a';
+	}
+	if($srcData["owner"]=='test28'){
+		$srcData["owner"] = 'df0ad9bc-c0cd-4cd9-af05-e43d23ed57f0';
+	}
+	if($srcData["owner"]=='290fd808-2f46-4b8c-b300-0367badd67ed'){
+		$srcData["owner"] = 'f81c7140-64b4-4025-b58c-45a3b386324a';
+	}
+	if($srcData["owner"]=='BA837178-9ABD-4DD4-96A0-D2C21B756DC4'){
+		$srcData["owner"] = 'ba5463f3-72d1-4410-858e-eadd10884713';
+	}
 	$stmtUser->execute(array($srcData["owner"]));
 	$userId = $stmtUser->fetch(PDO::FETCH_ASSOC);
 	if(!$userId){
@@ -79,6 +106,9 @@ while($srcData = $stmtSrc->fetch(PDO::FETCH_ASSOC)){
 		fwrite(STDERR,time().",error,user id too long {$srcData["owner"]}".PHP_EOL);
 		continue;	
 	}
+    if(empty($srcData["lang"]) ){
+        $srcData["lang"]='none';
+    }
 	//查询是否已经插入
 	$queryExsit = "SELECT id  FROM ".$dest_table." WHERE uid = ? ";
 	$getExist = $PDO_DEST->prepare($queryExsit);
@@ -91,6 +121,7 @@ while($srcData = $stmtSrc->fetch(PDO::FETCH_ASSOC)){
 	$created_at = date("Y-m-d H:i:s.",$srcData["create_time"]/1000).($srcData["create_time"]%1000)." UTC";
 	$updated_at = date("Y-m-d H:i:s.",$srcData["modify_time"]/1000).($srcData["modify_time"]%1000)." UTC";
 	$commitData = array(
+            $snowflake->id(),
 			$srcData["id"],
 			$srcData["title"],
 			$srcData["subtitle"],
@@ -108,11 +139,7 @@ while($srcData = $stmtSrc->fetch(PDO::FETCH_ASSOC)){
 			$updated_at
 		);
 	$stmtDEST->execute($commitData);
-	if (!$stmtDEST || ($stmtDEST && $stmtDEST->errorCode() != 0)) {
-		$error = $PDO_DEST->errorInfo();
-		echo "error - $error[2] ";
-		exit;
-	}
+
 	$count++;	
 	$allInsertCount++;
 
@@ -125,8 +152,9 @@ while($srcData = $stmtSrc->fetch(PDO::FETCH_ASSOC)){
 }
 
 fwrite(STDOUT,"insert done $allInsertCount in $allSrcCount ".PHP_EOL) ;
-fwrite(STDOUT,"all done".PHP_EOL);
+fwrite(STDOUT, "all done in ".(time()-$start)."s".PHP_EOL);
 
+fclose($fpError);