ConsoleHost Schema Initializer DryRun 人工驗證紀錄
驗證節點名稱
ConsoleHost Schema Initializer DryRun 人工驗證
驗證目的
確認 ConsoleHost 改由 SchemaInitializer 取得 dry run result 後,實際輸出是否仍可讓使用者清楚判斷:
- 既有 Workflow 代表流程是否仍正常完成。
- ConsoleHost 是否顯示
Schema initializer dry run:。 - 是否能看到
Mode=DryRun、Source=ConsoleHost與CorrelationId。 - SQL preview 是否仍完整顯示。
- 是否明確提醒不會連線或修改 MySQL。
- 本節點是否仍未導入真實 MySQL、
information_schema或 DDL。
驗證時間
2026-05-31
驗證對象
| 項目 | 內容 |
|---|---|
| repo | hs-device-control-template |
| branch | poc/nmodbus-tcp |
| commit | ac52376 |
| ConsoleHost | src\HS.DeviceControl.ConsoleHost |
| 對應文件 | schema-initializer-dryrun-consolehost-integration-implementation-record.md |
驗證方式
執行:
dotnet run --project src\HS.DeviceControl.ConsoleHost
驗證時仍使用:
samples/configMockSchemaInspector.Empty()SchemaInitializerSchemaInitializerDryRunRequestFormatSchemaInitializerResult()
本次驗證沒有:
- 連線 MySQL。
- 讀取
information_schema。 - 執行
CREATE TABLE、ALTER TABLE或任何 DDL。 - 新增或更換 MySQL package。
- 修改 ConsoleHost 啟動參數或啟動方式。
實際輸出摘要
ConsoleHost 前段仍正常完成第一階段代表流程:
Workflow completed.
Task node history:
- NodeId=light-on NodeName=開啟燈號 DeviceId=LED_001 CommandName=LightOn Status=completed TimeTakenMs=2 RetryCount=0 NextNodeId=sensor-verify
- NodeId=sensor-verify NodeName=Sensor 驗證 DeviceId=SENSOR_001 CommandName=SensorVerify Status=completed TimeTakenMs=0 RetryCount=0
Recent tasks:
- TaskId=demo-task WorkflowId=LIGHT_SENSOR_DEMO Status=Completed TimeTakenMs=12 NodeCount=2
Schema Initializer DryRun 區塊可正常顯示:
Schema initializer dry run:
Mode=DryRun Success=True Source=ConsoleHost CorrelationId=consolehost-schema-initializer-dry-run TablesToCreate=1 ColumnsToAdd=0 IndexesToAdd=0 ManualReview=0
SQL preview:
- CREATE TABLE IF NOT EXISTS `task_executions` (
`task_id` varchar(64) NOT NULL COMMENT 'task id',
`workflow_id` varchar(64) NOT NULL COMMENT 'workflow id',
`status` varchar(32) NOT NULL COMMENT 'status',
PRIMARY KEY (`task_id`),
INDEX `idx_task_executions_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='task execution';
Warnings:
- Dry Run 不會連線或修改 MySQL。
驗證結果
| 項目 | 結果 |
|---|---|
| Workflow 原有輸出 | 符合預期,仍可完成 LIGHT_SENSOR_DEMO |
| Task node history | 符合預期,可看到節點、設備、命令、狀態與下一節點 |
| Recent tasks | 符合預期,可看到任務摘要 |
| Schema Initializer 標題 | 符合預期,顯示 Schema initializer dry run: |
| DryRun 模式 | 符合預期,顯示 Mode=DryRun |
| 來源資訊 | 符合預期,顯示 Source=ConsoleHost |
| 追蹤資訊 | 符合預期,顯示 CorrelationId=consolehost-schema-initializer-dry-run |
| 建表數量 | 符合預期,顯示 TablesToCreate=1 |
| 欄位 / 索引補齊數量 | 符合預期,空 snapshot 下由 CREATE TABLE 一次呈現 |
| 人工審查項目 | 符合預期,顯示 ManualReview=0 |
| SQL preview | 符合預期,可看到 CREATE TABLE IF NOT EXISTS task_executions |
| 安全警告 | 符合預期,明確提示 Dry Run 不會連線或修改 MySQL |
| ConsoleHost 啟動方式 | 符合預期,不需要新增參數 |
自動測試結果
| 驗證項目 | 結果 |
|---|---|
dotnet test tests\HS.DeviceControl.ModbusPoc.Tests\HS.DeviceControl.ModbusPoc.Tests.csproj | 通過 37 個測試 |
dotnet test | 通過 318 個測試 |
是否符合預期
符合預期。
此節點已達到「讓使用者在 ConsoleHost 看見 Schema Initializer DryRun 實際效果」的目的。
發現問題或限制
- 目前仍使用 mock schema snapshot,不代表真實 MySQL metadata。
- 目前只顯示 DryRun preview,尚未接真實 MySQL Inspector。
- 尚未提供
--schema-dry-run、--schema-apply之類的 ConsoleHost 模式參數。 - 尚未實作 Apply / DDL executor。
.NET 5.0仍會出現既有 EOL 警告,與本次功能無直接關係。
判斷
此驗證節點可以標記完成。
建議下一步
建議下一步先整理:
Schema Automation 第一輪收尾檢查
確認目前 SQL Generator、Dry Run Plan、Mock Inspector、Schema Initializer、ConsoleHost 顯示與人工驗證是否已足以作為「真實 MySQL Inspector」前的完成邊界。
返回文件首頁