Skip to content

v1.3.1

Choose a tag to compare

@lawrence8358 lawrence8358 released this 26 May 16:54
· 20 commits to main since this release
6f7ba0b

Release v1.3.1

發布日期 (Date): 2026-05-26

主要亮點 (Highlights):

  • 修復 View 部署時因 SELECT * 或非引號 Schema 前綴導致的 PostgreSQL 錯誤 42P16: cannot change name of view column,讓 View 差異比對與同步更加穩健可靠。
  • EN: Fixes PostgreSQL error 42P16: cannot change name of view column triggered by SELECT * views or unquoted schema prefixes (e.g. public."vw_name"), making View diff and sync more robust and reliable.

🌟 What's New / 主要更新

🚀 Features / 新功能

無 / None


🛠 Refactoring & Improvements / 重構與效能優化

無 / None


🐛 Bug Fixes / 問題修復

  • View 差異比對:SELECT * 視圖改為保守的 ReplaceView 策略

    當現有 View 的 SQL 使用 SELECT * 導致欄位無法靜態解析時,舊版本會靜默跳過(不標記為任何變更),可能導致欄位實際有異動卻未觸發部署,進而發生 PostgreSQL 錯誤 42P16。修正後改為保守地標記為 ReplaceView(先執行 DROP VIEW,再執行 CREATE OR REPLACE VIEW),確保 View 結構一致性。

    EN: View diff: SELECT * views now use conservative ReplaceView strategy

    Previously, when an existing View's SQL used SELECT * (columns unparseable at diff time), it was silently skipped — potentially missing real column changes and causing PostgreSQL error 42P16. The fix marks such views as ReplaceView (DROP then CREATE OR REPLACE), ensuring structural consistency even when column names cannot be statically determined.

  • View 名稱解析:Regex 支援非引號 Schema 前綴(如 public."vw_name")

    View 名稱解析的正則表達式原本僅支援完整引號格式(如 "public"."vw_name"),對非引號 Schema 前綴(如 public."vw_name")無法正確識別 View 名稱,導致 View 被誤認為「不存在」而以 CreateView 執行,觸發 PostgreSQL 錯誤 42P16。現已同時支援 \w+ 非引號 Schema 格式,涵蓋 DeployOrchestrator 與 SchemaDiffer 中所有相關 Regex。

    EN: View name parsing: Regex now supports unquoted schema prefix (e.g. public."vw_name")

    The View name extraction regex previously only handled fully-quoted schemas (e.g. "public"."vw_name"). An unquoted schema prefix like public."vw_name" would fail to match, causing the View to be treated as non-existent and deployed as CreateView — which then triggered PostgreSQL error 42P16. All related Regex patterns in both DeployOrchestrator and SchemaDiffer now accept \w+ unquoted schema prefixes.


⚠️ Breaking Changes / 重大變更

無 / None