資料庫可視化儀表板
本頁集中呈現 MySQL / Schema Automation 的目前進度、資料流、資料表草圖、尚未完成項目與安全邊界。
視覺化進度
Schema Attribute 已可用 C# attribute 描述欄位、索引與註解。
100%SchemaDefinitionParser 已可解析 C# Class 成 SchemaDefinition。
100%MySqlSchemaSqlGenerator 已可產生 MySQL 5.6.2 相容 SQL。
100%ALTER TABLE Dry Run 已可產生新增 Table / Column / Index 的 dry run plan。
100%Mock Schema Inspector 已可在不連 DB 情境下提供目前 Schema。
100%SchemaDryRunPlanner 已可比對 expected / current schema。
100%Schema Initializer DryRun 已可串接 planner 與 ConsoleHost 顯示。
100%MySQL Query Builder / Row Mapper / Snapshot Assembler 已完成純程式 helper,commit
100%51cb17c。MySqlConnector Provider 尚未導入套件與真實連線;provider 實作前確認已整理。
0%真實
0%information_schema 讀取 尚未連線 DB。Schema Apply / DDL Executor 尚未允許執行 DDL。
0%TaskStore 寫入 尚未開始任務歷程持久化。
0%目前資料庫主線
| 項目 | 內容 |
|---|---|
| 目標 | 讓 C# Class 維護 MySQL 欄位型別、索引與描述,未來由 API / Host 啟動時產生或檢查 Table。 |
| MySQL 版本 | MySQL 5.6.2 |
| 目前階段 | 已完成不連 DB 的 Schema helper,尚未導入真實 provider。 |
| 最新程式版本 | 51cb17c |
| 測試數 | 329 |
| 安全邊界 | 目前不連線 DB、不讀取真實 information_schema、不執行 DDL、不寫入資料。 |
Schema Automation 流程
Schema Automation Flow
C# Schema Class
SchemaDefinitionParser
Expected Schema
Dry Run Plan
MySQL information_schema
MySqlSchemaInspector
Current Schema
SQL Preview / ConsoleHost
flowchart LR
A["C# Schema Class"] --> B["SchemaDefinitionParser"]
B --> C["Expected Schema"]
D["MySQL information_schema"] --> E["MySqlSchemaInspector"]
E --> F["Current Schema"]
C --> G["SchemaDryRunPlanner"]
F --> G
G --> H["Dry Run Plan"]
H --> I["SQL Preview / ConsoleHost 顯示"]
目前 D 與 E 的真實 DB provider 尚未開始;已完成的是 E 內部所需的 Query Builder、Row Mapper 與 Snapshot Assembler。
模組進度
| 模組 | 進度 | 說明 |
|---|---|---|
| Schema Attribute | 100% | 已可用 C# attribute 描述欄位、索引與註解。 |
| SchemaDefinitionParser | 100% | 已可解析 C# Class 成 SchemaDefinition。 |
| MySqlSchemaSqlGenerator | 100% | 已可產生 MySQL 5.6.2 相容 SQL。 |
| ALTER TABLE Dry Run | 100% | 已可產生新增 Table / Column / Index 的 dry run plan。 |
| Mock Schema Inspector | 100% | 已可在不連 DB 情境下提供目前 Schema。 |
| SchemaDryRunPlanner | 100% | 已可比對 expected / current schema。 |
| Schema Initializer DryRun | 100% | 已可串接 planner 與 ConsoleHost 顯示。 |
| MySQL Query Builder / Row Mapper / Snapshot Assembler | 100% | 已完成純程式 helper,commit 51cb17c。 |
| MySqlConnector Provider | 0% | 尚未導入套件與真實連線;provider 實作前確認已整理。 |
真實 information_schema 讀取 | 0% | 尚未連線 DB。 |
| Schema Apply / DDL Executor | 0% | 尚未允許執行 DDL。 |
| TaskStore 寫入 | 0% | 尚未開始任務歷程持久化。 |
資料表草圖
| 資料表 | 定位 | 目前狀態 |
|---|---|---|
TaskExecution | 任務主檔,記錄 TaskId、WorkflowId、Status、StartTime、EndTime、Result。 | 草案已整理,尚未真實建表。 |
NodeExecution | 節點歷程,記錄 NodeId、NodeName、Status、RetryCount、TimeTakenMs、ErrorCode。 | 草案已整理,尚未真實建表。 |
CommandExecution | Adapter 指令紀錄,記錄 DeviceId、CommandName、RawRequest、RawResponse。 | 草案已整理,尚未真實建表。 |
LogTrace | 補充 Log / Trace,記錄 HostName、Operator、AppVersion、Exception。 | 草案已整理,尚未真實建表。 |
真實 DB 前必須確認
| 確認項 | 原因 |
|---|---|
是否允許導入 MySqlConnector | 新增核心套件需使用者確認。 |
.csproj 是否可修改 | 導入套件會改變程式 repo 專案檔。 |
| 連線資訊提供方式 | 密碼不得寫入 repo,建議使用環境變數或本機未追蹤設定檔。 |
| DB 使用者權限 | 讀取 information_schema 與未來 DDL 權限需分開。 |
| 是否只做 inspect | 第一版建議只讀 metadata,不執行 DDL。 |
| 錯誤輸出格式 | 連線失敗、權限不足、schema 不存在需標準化。 |
目前風險
| 風險 | 建議處理 |
|---|---|
| MySQL 5.6.2 metadata 欄位差異 | 先用唯讀 provider 做查詢驗證,不直接 apply。 |
| 真實 DB 權限不足 | 先建立行前檢查表,確認 user 權限。 |
| 自動建表誤執行 | Apply 模式需另行確認,第一版只 dry run。 |
| 文件與程式不同步 | 每次程式 repo push 後同步 progress.json 與文件網站。 |
| 首頁資訊過多 | 由本頁承接資料庫細節,後續再精簡首頁。 |
建議下一步
已完成「MySqlSchemaInspector 真實 DB provider 實作前確認」。建議下一步先做程式 repo 結構檢查,確認是否新增 Infrastructure 專案、MySqlConnector 放置位置與設定來源,再決定是否導入套件。