Repository navigation
feat: 整合四種資料庫匯出匯入精靈與修整 - #54
Merged
Merged
Conversation
- 實作 SqliteExportWizardForm 與 SqliteSqlExportService: * 全 64KB 串流 StreamWriter 寫入與私有 Staging 檔案原子替換,杜絕整庫 StringBuilder 造成的 OOM。 * 深度支援 SpatiaLite 與 GeoPackage 空間特色:幾何 BLOB 無損轉 X'...' HEX 字面量、支援排除龐大空間中繼表 (spatial_ref_sys)。 * 自動辨識並排除 R-Tree/FTS 虛擬表影子表 (_node, _rowid, _parent 等),避免還原時 SQLite 報錯。 * 支援 BEGIN IMMEDIATE 一致性交易、側車註解結構傾印,以及腳本末尾 Native Manifest (SHA-256 與逐表筆數)。 - 實作 SqliteImportWizardForm 與 SqliteImportRunner: * 串流狀態機 Lexer 預檢 (Preflight),精確識別字串與註解內分號,並自動偵測 SpatiaLite 特徵。 * 支援動態加載 mod_spatialite.dll 空間延伸模組。 * 4 種既有物件處理策略(保留現存/全部替換/刪表重建/清空重匯),單一連線 Session 執行與自動交易保護。 * Punky 看板娘雙緩衝動畫、音效切換與 2,000 行滑動視窗終端機風格日誌。 * 每次執行產出獨立 Log 至 %LOCALAPPDATA%\mySQLPunk\ImportLogs。 * 匯入後自動讀取 Manifest 比對現存表與實際寫入筆數。 - 主視窗 Form1 路由整合與測試: * 新增 Form1.SqliteExport.cs 與 Form1.SqliteImport.cs,對齊 MSSQL/MySQL 路由規範。 * 新增 SmokeTests.SqliteExport.cs 與 SmokeTests.SqliteImport.cs (6 項測試),全數通過 (254/254)。
…pport and streaming state machine
…atial and PL/SQL support
- Implement OracleSqlExportService with 64KB StreamWriter and .writing staging atomic replacement to prevent OOM
- Losslessly dump MDSYS.SDO_GEOMETRY via SDO_UTIL.FROM_WKBGEOMETRY(HEXTORAW('...')) and register USER_SDO_GEOM_METADATA
- Automatically filter out internal R-Tree spatial shadow tables (MDRT_*, MDXT_*, MDRS_*)
- Add OracleImportPreflightScanner with PL/SQL slash (/) block lexer and NUL byte corruption detection
- Implement OracleImportRunner supporting 4 conflict strategies (KeepExisting, ReplaceAll, DropAndRecreate, TruncateAndInsert) and FIFO 2,000-line terminal log
- Add 4-step wizard UI (OracleExportWizardForm, OracleImportWizardForm) integrated with Punky mascot animation and sound
- Register full regression suite in SmokeTests (268/268 passed, auto-release policy passed)
- Update TODO.md marking Oracle alignment as completed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
整合 MySQL/MariaDB、SQLite、PostgreSQL 與 Oracle 的四步 SQL 匯出/匯入精靈,提供選表、輸出/執行選項、進度與 ETA、Punky 動畫及結果/錯誤日誌。這個 PR 包含原始功能分支堆疊,以及後續針對 MySQL、SQLite、Oracle 的資料安全與正確性修整。
MySQL 原先遇到非 InnoDB 或空間欄位時,可能開始後才停止。例如
city_geometry.SHAPE在處理前面資料表後才觸發失敗;現在先檢查整份選取範圍,再開始寫檔,普通 2D Geometry 以 WKB 加每筆 SRID 輸出。主要變更
驗證
審查範圍與限制
詳細支援範圍、修整覆核與證據:驗證紀錄、MySQL Geometry 修整。