個人使用AI開發的《PlSqlRewrite4GaussDB(PLSQL自動轉換工具)1.0.1 BETA》發布
前言
基于語法樹的SQL自動改寫工具開發系列(1)-離線安裝語法樹解析工具antlr4
基于語法樹的SQL自動改寫工具開發系列(2)-使用PYTHON進行簡單SQL改寫的開發實戰
基于語法樹的SQL自動改寫工具開發系列(3)-使用JAVA進行簡單SQL改寫的開發實戰
之前我寫過這么幾篇SQL自動改寫的文章,然后我個人也開發了一個針對一些特定場景的ORACLE存儲過程到GaussDB的自動轉換工具
https://gitee.com/darkathena/PlsqlRewrite4GaussDB ,這個工具同時支持在windows和linux上使用,但僅支持使用命令行的方式調用。
20250710起,這個工具停止開發,合并到了https://gitee.com/darkathena/PlsqlRewrite4GaussDB-web,在保留了原本命令行使用方式外,還額外支持了web圖形化使用,鼠標點一點就可以完成,不再需要手敲一堆參數。
這個軟件只有轉換核心里有我手寫的代碼,而web的前端和后端的代碼都是由AI生成的,全靠vibe coding,通過人工測試,反饋BUG和建議給AI,修修補補后看上去完成度還是很高的。
這個軟件主打就是可以自己在轉換邏輯中加入自定義設置(改了設置后要重啟服務),通過多種規則的組合,讓代碼有希望能一步轉換到位。因為如果工具轉換后還要人工改寫,那么改造期間,源端還在進行版本迭代,如果不同時維護兩個分支的代碼,就會導致需要不斷重復進行人工改寫。
另一個特殊點就是,本軟件的轉換核心是一個單獨的jar包,可以單獨用命令行使用,也可以集成到其他工具中去。這也意味著轉換核心是可以單獨替換的,而不用整個項目再重新編譯。
預覽地址 :https://plsqlrewrite.darkathena.top/ (admin/password ,阿里云提供的免費服務器,該地址使用期限截止到20250830)
下面的這個readme也是AI自動生成的。當然界面圖是我自己截的,不過插入圖片是AI自己完成的。
README
PlSqlRewrite4GaussDB
🚀 開源、可自定義的PL/SQL轉GaussDB工具
讓Oracle到GaussDB的PLSQL遷移變得簡單高效
📖 核心模塊文檔 | 🔧 快速開始 | 📋 功能特性
📋 目錄
- 項目簡介
- 功能特性
- 系統架構
- 快速開始
- 詳細使用指南
- 配置說明
- 開發指南
- 常見問題
- 更新日志
- 貢獻指南
- 許可證
🎯 項目簡介
PlSqlRewrite4GaussDB 是一款專為國產化改造設計的開源PL/SQL轉換工具,旨在解決Oracle到GaussDB遷移過程中的核心痛點:
🔥 解決的核心問題
問題 傳統方案痛點 我們的解決方案 語法兼容性 原廠工具轉換后仍需手動修改 ? 內置50+轉換規則,結合自定義轉換規則,代碼轉換把控在自己手中 規則定制 無法自定義轉換規則 ? 靈活配置系統,支持自定義規則 版本同步 源端更新需重復轉換和手動修改 ? 自定義規則可覆蓋原廠工具的缺陷,使轉換后不再需要人工修改成為可能 響應速度 新語法支持需等待數月 ? 開源架構,可快速擴展新規則 可被集成 無法集成到用戶自己的平臺中 ? 可以用命令行方式或api方式集成 🌟 核心優勢
- 🔧 高度可定制:支持語法節點級和正則表達式級自定義規則
- ? 高性能:支持多線程批量處理,大幅提升轉換效率
- 🎯 精準轉換:基于ANTLR4語法分析,確保轉換準確性
- 🔄 持續更新:開源架構,支持快速響應新需求
- 📊 可視化界面:提供完整的Web管理界面
🚀 功能特性
核心轉換能力
🔄 語法轉換
- 數據類型映射:
PLS_INTEGER
→INTEGER
、CHAR
→VARCHAR2
- 函數替換:
SYS_CONTEXT
→pg_current_sessid()
等- 關鍵字處理:自動添加
AS
關鍵字避免沖突- 異常處理:
RAISE_APPLICATION_ERROR
→REPORT_APPLICATION_ERROR
🎯 高級功能
- 動態SQL處理:支持
EXECUTE IMMEDIATE
動態SQL轉換- 游標優化:自動移除不必要的
SELECT INTO
- 性能優化:
TABLE()
函數優化、連接條件優化- 字符集處理:支持全角/半角字符自動轉換
?? 配置系統
- 映射文件:支持數據類型、函數、異常等映射配置
- 正則規則:支持自定義正則表達式替換
- 查詢塊替換:支持基于哈希值的整段SQL替換
- 參數模板:支持批量參數配置
技術架構
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 前端界面 │ │ 后端服務 │ │ 轉換核心 │ │ (Vue.js) │?──?│ (Spring Boot) │?──?│ (ANTLR4) │ │ │ │ │ │ │ │ ? 項目管理 │ │ ? REST API │ │ ? 語法解析 │ │ ? SQL轉換 │ │ ? 用戶認證 │ │ ? 規則轉換 │ │ ? 批量處理 │ │ ? 文件管理 │ │ ? 配置管理 │ └─────────────────┘ └─────────────────┘ └─────────────────┘
🏗? 系統架構
模塊組成
PlSqlRewrite4GaussDB/ ├── 📁 src/ # 轉換核心模塊 │ ├── 📁 main/java/ # 核心轉換邏輯 │ ├── 📁 test/ # 單元測試 │ └── 📁 resources/ # ANTLR4語法文件 ├── 📁 webapp/ # 后端服務模塊 │ ├── 📁 controller/ # REST API控制器 │ ├── 📁 service/ # 業務邏輯服務 │ └── 📁 model/ # 數據模型 ├── 📁 frontend/ # 前端界面模塊 │ ├── 📁 src/ # Vue.js源碼 │ └── 📁 public/ # 靜態資源 └── 📁 config/ # 配置文件目錄├── 📄 *.properties # 各種映射配置└── 📄 *.yaml # 高級規則配置
Web端項目列表界面預覽技術棧
模塊 技術棧 版本 轉換核心 Java + ANTLR4 Java 11+, ANTLR4 4.13.2 后端服務 Spring Boot 3.2.5 前端界面 Vue.js + Element Plus Vue 3.5.17 數據庫 SQLite 3.45.1.0 🚀 快速開始
環境要求
- Java: JDK 17+ (推薦JDK 17)
- Node.js: 16+ (僅前端開發需要)
- Maven: 3.6+ (可選,轉換核心支持離線構建)
一鍵構建
# 克隆項目 git clone https://gitee.com/darkathena/PlsqlRewrite4GaussDB-web.git cd PlsqlRewrite4GaussDB-web# 一鍵構建所有模塊 ./build_full_release.sh # Linux/Mac build_full_release.bat # Windows
快速啟動
# 進入release目錄 cd release# 啟動服務 ./start_server.sh # Linux/Mac start_server.bat # Windows
訪問 http://127.0.0.1:8080,使用默認賬號
admin/password
登錄。docker 鏡像構建和容器創建
docker build -t plsqlrewrite4gaussdb:1.0.0-beta . docker run --name plsqlrewrite4gaussdb-1.0.0-beta -d -p 8080:8080 plsqlrewrite4gaussdb:1.0.0-beta
📖 詳細使用指南
1. 命令行使用
單文件轉換
# 基本轉換 java -jar plsql-rewriter.jar input.sql output.sql# 指定字符集 java -jar plsql-rewriter.jar input.sql output.sql GBK UTF-8# 使用便捷腳本 ./convert.sh input.sql output.sql
批量轉換
# 批量轉換(10個并發) java -jar plsql-rewriter.jar input_dir output_dir 10# 使用便捷腳本 ./batch_convert.sh input_dir output_dir 10
2. Web界面使用
登錄界面
創建項目
項目列表
轉換詳情與差異對比
在線SQL轉換
項目管理
- 創建項目:設置項目名稱和描述
- 上傳文件:支持單個或批量上傳SQL文件
- 執行轉換:一鍵轉換所有文件,可在線對比差異
- 在線轉換:粘貼SQL直接轉換
轉換配置
- 基礎配置:數據類型映射、函數替換等
- 高級配置:正則表達式規則、查詢塊替換等
?? 配置說明
核心配置文件
├─config # 配置文件目錄 │ ├─add_func_into_pkg # 對指定package增加自定義函數 │ ├─replace_func_into_pkg # 對指定package替換自定義函數 │ ├─query_block_hash_map # 基于哈希值的查詢塊替換配置 │ ├─atom_mapping.properties # 字段函數轉換配置 │ ├─config.properties # 通用配置 │ ├─datatype_mapping.properties # 數據類型映射 │ ├─dynamic_sql.yaml # 動態SQL替換規則 │ ├─exception_mapping.properties # 異常名稱映射 │ ├─general_element_mapping.properties # 函數表達式映射 │ ├─patterns.yaml # 正則替換規則 │ ├─query_block_mapping.properties # 查詢塊規則 │ ├─regular_id_mapping.properties # 標識符映射 │ ├─token_mapping.properties # 詞法標記映射 │ └─udtlist.properties # 自定義類型列表
配置示例
# config.properties tablefunctionreplace=unnest ownerconvert=schema convert_table_of_ele_to_select=true# datatype_mapping.properties PLS_INTEGER=INTEGER NUMBER=NUMERIC LONG=TEXT
# patterns.yaml rules:- pattern: for\s*(\w*)\s*in\s*(\w*)\.first\s*\.\.\s*\w*\.last replacement: for $1 in 1..$2.count
🛠? 開發指南
環境搭建
# 1. 構建轉換核心 mvn clean package# 2. 構建后端服務 cd webapp mvn clean package# 3. 構建前端界面 cd frontend npm install npm run build
測試框架
# 運行所有測試 mvn test# 運行特定測試 mvn test -Dtest=PlSqlRewriterTest#testBasicConversion# 手動測試 ./convert.sh test.sql output.sql ./compare.sh output.sql expected.sql
? 常見問題
Q: 轉換后的SQL仍有語法錯誤怎么辦?
A: 檢查配置文件中是否有遺漏的映射規則,或使用正則表達式規則進行兜底處理。
Q: 如何添加新的數據類型映射?
A: 在
config/datatype_mapping.properties
文件中添加映射關系,格式為源類型=目標類型
。Q: 批量轉換時內存不足怎么辦?
A: 減少并發數量,或分批處理文件。
Q: 如何自定義函數替換規則?
A: 根據場景,使用token_mapping.properties或atom_mapping.properties或general_element_mapping.properties或patterns.yaml。
Q: 轉換性能如何優化?
A: 使用批量轉換模式,合理設置并發數,避免處理過大的單個文件。
💡注意事項
- 本項目輸入的SQL文件需要滿足在sqlplus中可執行的SQL格式,若語法解析錯誤則直接失敗
- 本項目轉換規則未覆蓋ORACLE的所有語法規則,且部分默認自定義配置選項并非是所有場景的等價轉換規則,請自行調整規則
- 多個規則之間起沖突可能導致轉換失敗,請自行調整規則
📝 更新日志
v0.0.0 (2024-11-28)
- ? 初始版本發布
- 🚀 支持50+核心轉換規則
- 🔧 靈活的配置系統
- ? 高性能批量處理
v1.0.0 (2025-07-11)
- 🎨 完整的Web管理界面
🤝 貢獻指南
我們歡迎所有形式的貢獻!
貢獻方式
- 報告問題:在GitHub Issues中報告bug或提出建議
- 提交代碼:Fork項目并提交Pull Request
- 完善文檔:幫助改進文檔和示例
- 分享經驗:分享使用經驗和最佳實踐
開發流程
- Fork項目到你的Github賬戶
- 創建功能分支:
git checkout -b feature/your-feature
- 提交更改:
git commit -am 'Add some feature'
- 推送分支:
git push origin feature/your-feature
- 提交Pull Request
代碼規范
- 遵循Java代碼規范
- 添加適當的注釋和文檔
- 確保所有測試通過
- 更新相關文檔
📄 許可證
本項目采用 MIT License 開源許可證。
🙏 致謝
感謝以下開源項目的支持:
- ANTLR4 - 強大的語法解析器生成器
- Spring Boot - 企業級Java框架
- Vue.js - 漸進式JavaScript框架
- Element Plus - Vue 3組件庫
如果這個項目對你有幫助,請給我們一個 ? Star!
源碼分析
deepwiki是一個免費(20250818還是免費的,后面不保證)的源代碼分析工具,只需要把github倉庫鏈接的github.com換成deepwiki.com,即可對源代碼進行分析,第一次會需要等十分鐘左右才能生成。
這次我就用deepwiki對源代碼進行了分析
https://deepwiki.com/Dark-Athena/PlsqlRewrite4GaussDB-web
只是deepwiki生成的mermaid圖似乎有些符號不對,沒有顯示出來,需要手工修正錯誤的雙引號和反引號,但也大差不差了。
另外,我又用copilot開發了一個從deepwiki導出成docsify雙語站點的工具:
https://gitee.com/darkathena/py-deepwiki2docsify
PS E:\gitee\py-deepwiki2docsify> python deepwiki2docsify.py --multilingual -o docs https://deepwiki.com/Dark-Athena/PlsqlRewrite4GaussDB-web
🚀 DeepWiki 到 Docsify 轉換器 - 修復版本
==================================================
🌐 多語言模式:將生成中英文雙語文檔
2025-08-18 15:33:31,913 - INFO - 🔄 第 1/3 次嘗試啟動 Selenium WebDriver...
2025-08-18 15:33:31,913 - INFO - 🔄 第 1 次嘗試啟動 Microsoft Edge WebDriver...
2025-08-18 15:33:31,914 - INFO - ====== WebDriver manager ======
2025-08-18 15:33:32,984 - INFO - Get LATEST edgedriver version for Edge 139.0.3405
2025-08-18 15:33:33,010 - WARNING - 無法下載EdgeDriver: Could not reach host. Are you offline?
[15908:57408:0818/153333.740:ERROR:components\edge_ess\vbs_encoder.cc:100] LoadEnclaveImageW failed, error code 577DevTools listening on ws://127.0.0.1:51519/devtools/browser/0fd6194b-c352-49af-ac89-f3776f9cdc91
[15908:57408:0818/153333.923:ERROR:components\edge_auth\edge_auth_errors.cc:535] EDGE_IDENTITY: Get Default OS Account failed: Error: Primary Error: kImplicitSignInFailure, Secondary Error: kAccountProviderFetchError, Platform error: 0, Error string: [empty][15908:50264:0818/153333.957:ERROR:chrome\browser\importer\edge_china_browsers\edge_qqbrowser_importer_utils_win.cc:198] QQBrowser profile preference file doesn't exist
[61304:62768:0818/153334.359:ERROR:net\socket\ssl_client_socket_impl.cc:928] handshake failed; returned -1, SSL error code 1, net_error -101
[61304:62768:0818/153334.430:ERROR:net\socket\ssl_client_socket_impl.cc:928] handshake failed; returned -1, SSL error code 1, net_error -101
[61304:62768:0818/153334.507:ERROR:net\socket\ssl_client_socket_impl.cc:928] handshake failed; returned -1, SSL error code 1, net_error -101
[61304:62768:0818/153334.581:ERROR:net\socket\ssl_client_socket_impl.cc:928] handshake failed; returned -1, SSL error code 1, net_error -101
2025-08-18 15:33:35,305 - INFO - 🚀 Microsoft Edge WebDriver 已啟動
2025-08-18 15:33:35,305 - INFO - 🚀 開始轉換 DeepWiki 站點: https://deepwiki.com/Dark-Athena/PlsqlRewrite4GaussDB-web
2025-08-18 15:33:35,305 - INFO - 🔄 正在加載頁面(Selenium): https://deepwiki.com/Dark-Athena/PlsqlRewrite4GaussDB-web
2025-08-18 15:33:40,658 - INFO - ? 等待JavaScript執行完成...
2025-08-18 15:33:48,747 - INFO - ? 動態內容已加載
2025-08-18 15:33:48,747 - INFO - 🔍 等待異步內容加載...
2025-08-18 15:34:12,821 - INFO - 📄 獲取頁面源碼: 398885 字符
2025-08-18 15:34:12,878 - INFO - 🔗 發現 GitHub 倉庫: https://github.com/Dark-Athena/PlsqlRewrite4GaussDB-web
2025-08-18 15:34:12,894 - INFO - 🎯 發現 commit SHA: a6954e6f
2025-08-18 15:34:12,894 - INFO - 🎯 提取動態導航數據...
2025-08-18 15:34:12,894 - INFO - 🔍 分析動態導航數據...
2025-08-18 15:34:12,909 - INFO - 🔍 分析頁面中的 72 個鏈接...
2025-08-18 15:34:12,972 - INFO - 🎯 找到序號鏈接: Overview -> 1-overview
2025-08-18 15:34:12,980 - INFO - 🎯 找到序號鏈接: System Architecture -> 1.1-system-architecture
2025-08-18 15:34:12,989 - INFO - 🎯 找到序號鏈接: Key Features -> 1.2-key-features
2025-08-18 15:34:12,998 - INFO - 🎯 找到序號鏈接: Getting Started -> 2-getting-started
2025-08-18 15:34:13,009 - INFO - 🎯 找到序號鏈接: Installation and Deployment -> 2.1-installation-and-deployment
2025-08-18 15:34:13,024 - INFO - 🎯 找到序號鏈接: Command Line Usage -> 2.2-command-line-usage
2025-08-18 15:34:13,034 - INFO - 🎯 找到序號鏈接: Web Interface Guide -> 2.3-web-interface-guide
2025-08-18 15:34:13,044 - INFO - 🎯 找到序號鏈接: Core Processing Engine -> 3-core-processing-engine
2025-08-18 15:34:13,055 - INFO - 🎯 找到序號鏈接: PL/SQL Rewriter Core -> 3.1-plsql-rewriter-core
2025-08-18 15:34:13,064 - INFO - 🎯 找到序號鏈接: Configuration System -> 3.2-configuration-system
2025-08-18 15:34:13,074 - INFO - 🎯 找到序號鏈接: Conversion Rules and Transformations -> 3.3-conversion-rules-and-transformations
2025-08-18 15:34:13,084 - INFO - 🎯 找到序號鏈接: Web Application -> 4-web-application
2025-08-18 15:34:13,093 - INFO - 🎯 找到序號鏈接: Backend API Reference -> 4.1-backend-api-reference
2025-08-18 15:34:13,103 - INFO - 🎯 找到序號鏈接: Frontend Components -> 4.2-frontend-components
2025-08-18 15:34:13,112 - INFO - 🎯 找到序號鏈接: Project Management System -> 4.3-project-management-system
2025-08-18 15:34:13,121 - INFO - 🎯 找到序號鏈接: HTTP Client and Request Handling -> 4.4-http-client-and-request-handling
2025-08-18 15:34:13,132 - INFO - 🎯 找到序號鏈接: Testing Framework -> 5-testing-framework
2025-08-18 15:34:13,142 - INFO - 🎯 找到序號鏈接: Core Engine Tests -> 5.1-core-engine-tests
2025-08-18 15:34:13,152 - INFO - 🎯 找到序號鏈接: SQL Test Cases -> 5.2-sql-test-cases
2025-08-18 15:34:13,162 - INFO - 🎯 找到序號鏈接: GROUP BY and Advanced SQL Tests -> 5.3-group-by-and-advanced-sql-tests
2025-08-18 15:34:13,171 - INFO - 🎯 找到序號鏈接: Development Guide -> 6-development-guide
2025-08-18 15:34:13,181 - INFO - 🎯 找到序號鏈接: Build Process -> 6.1-build-process
2025-08-18 15:34:13,191 - INFO - 🎯 找到序號鏈接: Utilities and Helper Components -> 6.2-utilities-and-helper-components
2025-08-18 15:34:13,209 - INFO - 🎯 找到序號鏈接: Core Processing Engine -> 3-core-processing-engine
2025-08-18 15:34:13,217 - INFO - 🎯 找到序號鏈接: Web Application -> 4-web-application
2025-08-18 15:34:13,227 - INFO - 🎯 找到序號鏈接: Getting Started -> 2-getting-started
2025-08-18 15:34:28,585 - INFO - 🎯 動態提取到 23 個真實文件名映射
2025-08-18 15:34:28,586 - INFO - 🔗 分析導航欄鏈接...
2025-08-18 15:34:28,604 - INFO - 🔗 找到導航鏈接: Overview -> 1-overview
2025-08-18 15:34:28,604 - INFO - 🔗 找到導航鏈接: System Architecture -> 1.1-system-architecture
2025-08-18 15:34:28,604 - INFO - 🔗 找到導航鏈接: Key Features -> 1.2-key-features
2025-08-18 15:34:28,604 - INFO - 🔗 找到導航鏈接: Getting Started -> 2-getting-started
2025-08-18 15:34:28,605 - INFO - 🔗 找到導航鏈接: Installation and Deployment -> 2.1-installation-and-deployment
2025-08-18 15:34:28,605 - INFO - 🔗 找到導航鏈接: Command Line Usage -> 2.2-command-line-usage
2025-08-18 15:34:28,605 - INFO - 🔗 找到導航鏈接: Web Interface Guide -> 2.3-web-interface-guide
2025-08-18 15:34:28,605 - INFO - 🔗 找到導航鏈接: Core Processing Engine -> 3-core-processing-engine
2025-08-18 15:34:28,605 - INFO - 🔗 找到導航鏈接: PL/SQL Rewriter Core -> 3.1-plsql-rewriter-core
2025-08-18 15:34:28,605 - INFO - 🔗 找到導航鏈接: Configuration System -> 3.2-configuration-system
2025-08-18 15:34:28,606 - INFO - 🔗 找到導航鏈接: Conversion Rules and Transformations -> 3.3-conversion-rules-and-transformations
2025-08-18 15:34:28,606 - INFO - 🔗 找到導航鏈接: Web Application -> 4-web-application
2025-08-18 15:34:28,606 - INFO - 🔗 找到導航鏈接: Backend API Reference -> 4.1-backend-api-reference
2025-08-18 15:34:28,606 - INFO - 🔗 找到導航鏈接: Frontend Components -> 4.2-frontend-components
2025-08-18 15:34:28,606 - INFO - 🔗 找到導航鏈接: Project Management System -> 4.3-project-management-system
2025-08-18 15:34:28,606 - INFO - 🔗 找到導航鏈接: HTTP Client and Request Handling -> 4.4-http-client-and-request-handling
2025-08-18 15:34:28,606 - INFO - 🔗 找到導航鏈接: Testing Framework -> 5-testing-framework
2025-08-18 15:34:28,607 - INFO - 🔗 找到導航鏈接: Core Engine Tests -> 5.1-core-engine-tests
2025-08-18 15:34:28,607 - INFO - 🔗 找到導航鏈接: SQL Test Cases -> 5.2-sql-test-cases
2025-08-18 15:34:28,607 - INFO - 🔗 找到導航鏈接: GROUP BY and Advanced SQL Tests -> 5.3-group-by-and-advanced-sql-tests
2025-08-18 15:34:28,607 - INFO - 🔗 找到導航鏈接: Development Guide -> 6-development-guide
2025-08-18 15:34:28,607 - INFO - 🔗 找到導航鏈接: Build Process -> 6.1-build-process
2025-08-18 15:34:28,607 - INFO - 🔗 找到導航鏈接: Utilities and Helper Components -> 6.2-utilities-and-helper-components
2025-08-18 15:34:28,608 - INFO - 🔗 找到導航鏈接: Core Processing Engine -> 3-core-processing-engine
2025-08-18 15:34:28,608 - INFO - 🔗 找到導航鏈接: Web Application -> 4-web-application
2025-08-18 15:34:28,608 - INFO - 🔗 找到導航鏈接: Getting Started -> 2-getting-started
2025-08-18 15:34:28,608 - INFO - 📋 從導航欄提取到 23 個文件名映射
2025-08-18 15:34:28,608 - INFO - 🔄 合并 23 個動態導航項...
2025-08-18 15:34:28,609 - INFO - 🔍 提取頁面內容...
2025-08-18 15:34:28,631 - INFO - 🔍 分析 88 個腳本標簽...
2025-08-18 15:34:28,649 - INFO - 🎯 使用導航鏈接文件名: Overview -> 1-overview
2025-08-18 15:34:28,656 - INFO - 🎯 使用導航鏈接文件名: System Architecture -> 1.1-system-architecture
2025-08-18 15:34:28,664 - INFO - 🎯 使用導航鏈接文件名: Key Features -> 1.2-key-features
2025-08-18 15:34:28,671 - INFO - 🎯 使用導航鏈接文件名: Getting Started -> 2-getting-started
2025-08-18 15:34:28,677 - INFO - 🎯 使用導航鏈接文件名: Installation and Deployment -> 2.1-installation-and-deployment
2025-08-18 15:34:28,683 - INFO - 🎯 使用導航鏈接文件名: Command Line Usage -> 2.2-command-line-usage
2025-08-18 15:34:28,690 - INFO - 🎯 使用導航鏈接文件名: Web Interface Guide -> 2.3-web-interface-guide
2025-08-18 15:34:28,700 - INFO - 🎯 使用導航鏈接文件名: Core Processing Engine -> 3-core-processing-engine
2025-08-18 15:34:28,710 - INFO - 🎯 使用導航鏈接文件名: PL/SQL Rewriter Core -> 3.1-plsql-rewriter-core
2025-08-18 15:34:28,718 - INFO - 🎯 使用導航鏈接文件名: Configuration System -> 3.2-configuration-system
2025-08-18 15:34:28,726 - INFO - 🎯 使用導航鏈接文件名: Conversion Rules and Transformations -> 3.3-conversion-rules-and-transformations
2025-08-18 15:34:28,732 - INFO - 🎯 使用導航鏈接文件名: Web Application -> 4-web-application
2025-08-18 15:34:28,741 - INFO - 🎯 使用導航鏈接文件名: Backend API Reference -> 4.1-backend-api-reference
2025-08-18 15:34:28,749 - INFO - 🎯 使用導航鏈接文件名: Frontend Components -> 4.2-frontend-components
2025-08-18 15:34:28,758 - INFO - 🎯 使用導航鏈接文件名: Project Management System -> 4.3-project-management-system
2025-08-18 15:34:28,765 - INFO - 🎯 使用導航鏈接文件名: HTTP Client and Request Handling -> 4.4-http-client-and-request-handling
2025-08-18 15:34:28,771 - INFO - 🎯 使用導航鏈接文件名: Testing Framework -> 5-testing-framework
2025-08-18 15:34:28,778 - INFO - 🎯 使用導航鏈接文件名: Core Engine Tests -> 5.1-core-engine-tests
2025-08-18 15:34:28,784 - INFO - 🎯 使用導航鏈接文件名: SQL Test Cases -> 5.2-sql-test-cases
2025-08-18 15:34:28,790 - INFO - 🎯 使用導航鏈接文件名: GROUP BY and Advanced SQL Tests -> 5.3-group-by-and-advanced-sql-tests
2025-08-18 15:34:28,797 - INFO - 🎯 使用導航鏈接文件名: Development Guide -> 6-development-guide
2025-08-18 15:34:28,805 - INFO - 🎯 使用導航鏈接文件名: Build Process -> 6.1-build-process
2025-08-18 15:34:28,812 - INFO - 🎯 使用導航鏈接文件名: Utilities and Helper Components -> 6.2-utilities-and-helper-components
2025-08-18 15:34:28,820 - INFO - 📄 提取到 23 個完整頁面
2025-08-18 15:34:28,820 - INFO - 📋 提取到導航結構: 393 個條目
2025-08-18 15:34:28,820 - INFO - 📋 發現 23 個頁面
2025-08-18 15:34:28,820 - INFO - - Overview
2025-08-18 15:34:28,820 - INFO - - System Architecture
2025-08-18 15:34:28,820 - INFO - - Key Features
2025-08-18 15:34:28,821 - INFO - - Getting Started
2025-08-18 15:34:28,821 - INFO - - Installation and Deployment
2025-08-18 15:34:28,821 - INFO - - Command Line Usage
2025-08-18 15:34:28,821 - INFO - - Web Interface Guide
2025-08-18 15:34:28,821 - INFO - - Core Processing Engine
2025-08-18 15:34:28,821 - INFO - - PL/SQL Rewriter Core
2025-08-18 15:34:28,822 - INFO - - Configuration System
2025-08-18 15:34:28,822 - INFO - - Conversion Rules and Transformations
2025-08-18 15:34:28,822 - INFO - - Web Application
2025-08-18 15:34:28,822 - INFO - - Backend API Reference
2025-08-18 15:34:28,822 - INFO - - Frontend Components
2025-08-18 15:34:28,822 - INFO - - Project Management System
2025-08-18 15:34:28,823 - INFO - - HTTP Client and Request Handling
2025-08-18 15:34:28,823 - INFO - - Testing Framework
2025-08-18 15:34:28,823 - INFO - - Core Engine Tests
2025-08-18 15:34:28,823 - INFO - - SQL Test Cases
2025-08-18 15:34:28,823 - INFO - - GROUP BY and Advanced SQL Tests
2025-08-18 15:34:28,823 - INFO - - Development Guide
2025-08-18 15:34:28,823 - INFO - - Build Process
2025-08-18 15:34:28,824 - INFO - - Utilities and Helper Components
2025-08-18 15:34:28,825 - INFO - 📄 創建頁面: Overview -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\1-overview.md
2025-08-18 15:34:28,826 - INFO - 📄 創建頁面: System Architecture -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\1.1-system-architecture.md
2025-08-18 15:34:28,828 - INFO - 📄 創建頁面: Key Features -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\1.2-key-features.md
2025-08-18 15:34:28,829 - INFO - 📄 創建頁面: Getting Started -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\2-getting-started.md
2025-08-18 15:34:28,830 - INFO - 📄 創建頁面: Installation and Deployment -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\2.1-installation-and-deployment.md
2025-08-18 15:34:28,831 - INFO - 📄 創建頁面: Command Line Usage -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\2.2-command-line-usage.md
2025-08-18 15:34:28,832 - INFO - 📄 創建頁面: Web Interface Guide -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\2.3-web-interface-guide.md
2025-08-18 15:34:28,833 - INFO - 📄 創建頁面: Core Processing Engine -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\3-core-processing-engine.md2025-08-18 15:34:28,834 - INFO - 📄 創建頁面: PL/SQL Rewriter Core -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\3.1-plsql-rewriter-core.md
2025-08-18 15:34:28,835 - INFO - 📄 創建頁面: Configuration System -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\3.2-configuration-system.md
2025-08-18 15:34:28,835 - INFO - 📄 創建頁面: Conversion Rules and Transformations -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\3.3-conversion-rules-and-transformations.md
2025-08-18 15:34:28,836 - INFO - 📄 創建頁面: Web Application -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\4-web-application.md
2025-08-18 15:34:28,838 - INFO - 📄 創建頁面: Backend API Reference -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\4.1-backend-api-reference.md2025-08-18 15:34:28,839 - INFO - 📄 創建頁面: Frontend Components -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\4.2-frontend-components.md
2025-08-18 15:34:28,840 - INFO - 📄 創建頁面: Project Management System -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\4.3-project-management-system.md
2025-08-18 15:34:28,841 - INFO - 📄 創建頁面: HTTP Client and Request Handling -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\4.4-http-client-and-request-handling.md
2025-08-18 15:34:28,842 - INFO - 📄 創建頁面: Testing Framework -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\5-testing-framework.md
2025-08-18 15:34:28,843 - INFO - 📄 創建頁面: Core Engine Tests -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\5.1-core-engine-tests.md
2025-08-18 15:34:28,843 - INFO - 📄 創建頁面: SQL Test Cases -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\5.2-sql-test-cases.md
2025-08-18 15:34:28,844 - INFO - 📄 創建頁面: GROUP BY and Advanced SQL Tests -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\5.3-group-by-and-advanced-sql-tests.md
2025-08-18 15:34:28,845 - INFO - 📄 創建頁面: Development Guide -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\6-development-guide.md
2025-08-18 15:34:28,846 - INFO - 📄 創建頁面: Build Process -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\6.1-build-process.md
2025-08-18 15:34:28,847 - INFO - 📄 創建頁面: Utilities and Helper Components -> zh-cn\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\6.2-utilities-and-helper-components.md
2025-08-18 15:34:28,848 - INFO - 📄 創建頁面: Overview -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\1-overview.md
2025-08-18 15:34:28,849 - INFO - 📄 創建頁面: System Architecture -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\1.1-system-architecture.md
2025-08-18 15:34:28,850 - INFO - 📄 創建頁面: Key Features -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\1.2-key-features.md
2025-08-18 15:34:28,851 - INFO - 📄 創建頁面: Getting Started -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\2-getting-started.md
2025-08-18 15:34:28,851 - INFO - 📄 創建頁面: Installation and Deployment -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\2.1-installation-and-deployment.md
2025-08-18 15:34:28,852 - INFO - 📄 創建頁面: Command Line Usage -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\2.2-command-line-usage.md
2025-08-18 15:34:28,853 - INFO - 📄 創建頁面: Web Interface Guide -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\2.3-web-interface-guide.md
2025-08-18 15:34:28,854 - INFO - 📄 創建頁面: Core Processing Engine -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\3-core-processing-engine.md
2025-08-18 15:34:28,855 - INFO - 📄 創建頁面: PL/SQL Rewriter Core -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\3.1-plsql-rewriter-core.md
2025-08-18 15:34:28,856 - INFO - 📄 創建頁面: Configuration System -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\3.2-configuration-system.md
2025-08-18 15:34:28,857 - INFO - 📄 創建頁面: Conversion Rules and Transformations -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\3.3-conversion-rules-and-transformations.md
2025-08-18 15:34:28,858 - INFO - 📄 創建頁面: Web Application -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\4-web-application.md
2025-08-18 15:34:28,859 - INFO - 📄 創建頁面: Backend API Reference -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\4.1-backend-api-reference.md
2025-08-18 15:34:28,860 - INFO - 📄 創建頁面: Frontend Components -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\4.2-frontend-components.md
2025-08-18 15:34:28,861 - INFO - 📄 創建頁面: Project Management System -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\4.3-project-management-system.md
2025-08-18 15:34:28,862 - INFO - 📄 創建頁面: HTTP Client and Request Handling -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\4.4-http-client-and-request-handling.md
2025-08-18 15:34:28,863 - INFO - 📄 創建頁面: Testing Framework -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\5-testing-framework.md
2025-08-18 15:34:28,864 - INFO - 📄 創建頁面: Core Engine Tests -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\5.1-core-engine-tests.md
2025-08-18 15:34:28,865 - INFO - 📄 創建頁面: SQL Test Cases -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\5.2-sql-test-cases.md
2025-08-18 15:34:28,866 - INFO - 📄 創建頁面: GROUP BY and Advanced SQL Tests -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\5.3-group-by-and-advanced-sql-tests.md
2025-08-18 15:34:28,867 - INFO - 📄 創建頁面: Development Guide -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\6-development-guide.md
2025-08-18 15:34:28,868 - INFO - 📄 創建頁面: Build Process -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\6.1-build-process.md
2025-08-18 15:34:28,868 - INFO - 📄 創建頁面: Utilities and Helper Components -> en\pages\Dark-Athena\PlsqlRewrite4GaussDB-web\6.2-utilities-and-helper-components.md
2025-08-18 15:34:28,869 - INFO - 🌐 生成多語言 index.html...
2025-08-18 15:34:28,870 - INFO - 📋 生成根目錄側邊欄...
2025-08-18 15:34:28,870 - INFO - 📄 生成語言選擇頁面...
2025-08-18 15:34:28,873 - INFO - 📁 生成 中文 版本配置...
2025-08-18 15:34:28,874 - INFO - 📁 生成 English 版本配置...
2025-08-18 15:34:28,874 - INFO - 🌐 多語言文件生成完成
2025-08-18 15:34:34,407 - INFO - 🛑 Selenium WebDriver 已關閉🎉 轉換成功!
📁 輸出目錄: E:\gitee\py-deepwiki2docsify\docs
📄 處理頁面: 23 個📋 項目信息:名稱: Dark-Athena/PlsqlRewrite4GaussDB-web標題: Dark-Athena/PlsqlRewrite4GaussDB-web原始頁面: https://deepwiki.com/Dark-Athena/PlsqlRewrite4GaussDB-web💡 啟動本地服務器:cd docspython -m http.server 3000然后訪問 http://localhost:3000🌍 部署到 GitHub Pages:1. 將 docs 目錄內容推送到 GitHub 倉庫2. 在倉庫設置中啟用 GitHub Pages3. 選擇從根目錄或 docs 目錄部署
再用扣子空間翻譯出了對應的中文版本文件,直接上傳到一個http站點就能正常顯示了。
源碼分析文檔已經上傳到我的個人博客站點:
https://www.darkathena.top/PlsqlRewrite4GaussDB-web-wiki/index.html
同時也上傳到了github和gitee的wiki
https://github.com/Dark-Athena/PlsqlRewrite4GaussDB-web/wiki/1-overview
https://gitee.com/darkathena/PlsqlRewrite4GaussDB-web/wikis/1-overview
有點高大上的感覺了,順手截了幾個圖
不過deepwiki生成的似乎并完全不正確,比如它說我這個程序的配置文件支持熱加載,但這功能我就還沒做。所以這個源碼分析就圖一樂吧,大概就這么回事,細節不能深究…
Docker鏡像構建
docker 鏡像構建腳本也是AI生成的
不過我還是手動做了一些優化,比如使用多階段構建來減少鏡像大小,以及規避了apt-get命令下載依賴包可能由于網路問題下載不到的問題。
打包工作流
自動打包工作流也是AI自動生成的
不過由于還不算正式版本,我修改成了只能手動觸發。
https://github.com/Dark-Athena/PlsqlRewrite4GaussDB-web/blob/Dark-Athena-patch-1/.github/workflows/main.yml
總結
- 本軟件并未覆蓋全量的改寫規則,僅對部分語法點做了可自定義修改的配置入口,默認的改寫規則個數肯定不如原廠工具。但其價值在于給PL/SQL轉換到GaussDB提供了一種新的可集成自定義規則的路徑。原廠轉換工具為了通用,只做絕對的等價改寫,遇上不能等價改寫的就保持原樣了,而實際上客戶知道自己的代碼應該要怎么人工改寫能符合原本的業務含義,此時一個可以配置自定義規則的工具就有了用武之地。
- 現在AI的能力真的能替代很多工作了,只要把清晰的思路告訴AI,是真的可以讓AI幾乎完整地生成企業級的程序的。
- 本項目有使用到的AI工具
- NEW BING (免費,早期沒有AI agent工具時,通過對話的方式,手動給轉換核心一段一段代碼進行開發)
- Cursor (付費,前后端代碼和ReadMe生成)
- VSCode copilot(付費,Cursor 斷供后,切換到VSCode進行bug修復;轉換deepwiki生成的源代碼文檔到docsify格式;github打包工作流生成)
- deepwiki (免費,生成源代碼解析文檔)
- 扣子空間(免費,翻譯源代碼解析文檔的中文版本,主要是免費,不消耗寶貴的用于開發的token)
- 天啟 (免費,部分技術點可行性咨詢,避免打斷項目整體思路和token浪費)
- 本文作者: DarkAthena
- 本文鏈接: https://www.darkathena.top/archives/plsqlrewrite4gaussdb-1.0.1-beta-release
- 版權聲明: 本博客所有文章除特別聲明外,均采用CC BY-NC-SA 3.0 許可協議。轉載請注明出處