Schema Automation 第一輪收尾檢查

Schema Automation 第一輪收尾檢查

1. 檢查目的

本文件用來確認第二階段目前的 Schema Automation 第一輪是否已形成完整邊界,並判斷是否可以進入下一個節點。

本次收尾檢查涵蓋:

2. 收尾結論

Schema Automation 第一輪可以標記完成。

完成的範圍是:

C# schema definition
-> SQL Generator
-> Mock Inspector
-> Dry Run Plan
-> Schema Initializer
-> ConsoleHost 顯示
-> 人工驗證紀錄

目前已足以作為「真實 MySQL Inspector」前的完成邊界。

下一步建議進入:

真實 MySQL Inspector 前置確認

但真實 MySQL 套件、DB 連線、information_schema 查詢與任何 DDL / Apply 行為仍需要獨立確認,不應直接自動執行。

3. 完成項目總表

項目狀態證據 / 文件
MySQL Schema 自動建表設計已完成mysql-schema-auto-create-design.md
MySQL schema Class 初稿已完成mysql-schema-class-draft.md
Schema Attribute 實作前確認已完成mysql-schema-attribute-preimplementation-checklist.md
Schema Attribute 與 SQL Generator 設計已完成mysql-schema-attribute-sql-generator-design.md
SQL Generator 實作前確認已完成mysql-sql-generator-preimplementation-checklist.md
MySqlSchemaSqlGenerator 第一版已完成mysql-sql-generator-implementation-record.md
ALTER TABLE / Initializer 實作前確認已完成mysql-alter-schema-initializer-preimplementation-checklist.md
ALTER TABLE SQL 與 Dry Run Plan 第一版已完成mysql-alter-dry-run-implementation-record.md
Schema Inspector 前置分析已完成mysql-schema-inspector-preimplementation-checklist.md
ISchemaInspector / mock inspector 確認已完成mysql-schema-inspector-interface-mock-preimplementation-checklist.md
ISchemaInspector / mock inspector 實作已完成schema-inspector-interface-mock-implementation-record.md
SchemaDryRunPlanner 設計已完成schema-dry-run-planner-design.md
SchemaDryRunPlanner 第一版已完成schema-dry-run-planner-implementation-record.md
ConsoleHost dry run 顯示已完成schema-dry-run-planner-consolehost-display-record.md
ConsoleHost dry run 人工驗證已完成consolehost-schema-dry-run-display-verification-record.md
SchemaInitializer DryRun 設計已完成schema-initializer-dryrun-flow-design.md
SchemaInitializer DryRun 第一版已完成schema-initializer-dryrun-implementation-record.md
ConsoleHost 接入 SchemaInitializer已完成schema-initializer-dryrun-consolehost-integration-implementation-record.md
ConsoleHost Schema Initializer DryRun 人工驗證已完成consolehost-schema-initializer-dryrun-verification-record.md

4. 目前已驗證能力

能力結論
從 C# class / schema definition 表達 table、column、index、comment已具備
產生 MySQL 5.6.2 相容的 CREATE TABLE IF NOT EXISTS已具備
產生非破壞性的 ADD COLUMN / ADD INDEX已具備
禁止自動產生 DROPMODIFYCHANGE已具備
使用 mock schema snapshot 產生 Dry Run Plan已具備
保留 warnings 與 manual review items已具備
將 DryRun 包裝成 SchemaInitializerResult已具備
ConsoleHost 顯示 SQL preview已具備
ConsoleHost 顯示 Mode / Source / CorrelationId已具備
人工驗證 ConsoleHost 實際輸出已完成
全專案測試已通過 318 個測試

5. 尚未完成但不屬於第一輪的項目

項目判斷
真實 MySQL Inspector下一輪進入前置確認
MySQL package 導入需先確認套件與連線策略
information_schema 查詢需先確認 MySQL 5.6.2 欄位與權限
真實 DB 連線測試需要使用者提供環境與敏感資訊處理方式
DDL executor / Apply 模式需獨立設計確認
--schema-dry-run / --schema-apply 啟動參數需獨立設計確認
TaskStore 實作屬於資料持久化下一階段
WebApi / ServiceHost / WinForms Debug Tool屬於後續平台化階段

6. 進入真實 MySQL Inspector 前需確認

進入下一階段前,需先確認:

確認項目建議
MySQL 套件沿用前面建議,第一版採 MySqlConnector
連線資訊不寫入 repo;使用 local config、環境變數或使用者本機安全設定
查詢範圍第一版只讀 information_schema.TABLESCOLUMNSSTATISTICS
權限只需要 metadata read 權限,不需要 DDL 權限
測試方式先做 unit test + mock,再做可選的本機 MySQL integration test
失敗處理需回傳標準 ErrorInfo,不得吞掉 exception
安全邊界不執行 CREATEALTERDROP

7. 必須停下確認的項目

以下項目不得直接自動執行:

8. 建議下一步

建議下一步進入:

真實 MySQL Inspector 前置確認

建議先整理:

  1. 是否導入 MySqlConnector
  2. IMySqlConnectionFactory 或同等抽象是否必要。
  3. information_schema 查詢欄位清單。
  4. 連線資訊提供方式與禁止寫入 repo 的規則。
  5. 單元測試與 integration test 的分界。
  6. 仍不執行 DDL 的安全邊界。
返回文件首頁