diff --git a/CHANGELOG.md b/CHANGELOG.md index 16d5fd6..50cf6fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,12 +29,23 @@ Versioning follows [Semantic Versioning](https://semver.org/). (filter `tmdo_log_info`);`debug()`、`warning()`、`error()` 不變。(PR-095) - 公開 listings REST 一律不輸出名稱像 email、phone、address、IP 的欄位,即使宣告 `show_in_rest`。(PR-096) +- **既有扁平表的 schema 升級只在 WP-CLI 或 WP-Cron 執行**:網頁請求遇到定義變更時記入 + `tmdo_schema_deferred` 並排 `tmdo_ensure_group_indexes`;升級前該 group 的 key 走原生 + (Hook Bus 不攔、router 不路由),升級後排 `tmdo_drift_resync` 補回期間跳過的扁平寫入。 + 新表照常立即建立;aeav_only 仍立即升級(扁平表是唯一副本);`doctor` 顯示 `[SCHEMA]`。(PR-107) +- 讀寫分離(HyperDB、LudicrousDB)時,取索引鎖前先 `send_reads_to_masters()`, + `GET_LOCK` 才會在 primary 上。(PR-108) +- Cold 快取的「清除」改為遞增版本號(`wpdo_cold_cache_version`),不再呼叫 + `wp_cache_flush_group()`(Redis Object Cache 以伺服器端腳本掃描整個 group,大 group 會卡住 + Redis);舊 key 依 TTL 過期。(PR-110) ### Fixed - 後台主頁與設定精靈第 4 步的表單改在 `load-{page}`(輸出前)處理,`wp_safe_redirect()` 可以正常生效;精靈快照失敗改以 `snap_failed=1` 導回。(PR-097) - `uninstall.php` 的全域變數加上 `$wpdo_` 前綴(WordPress.org Plugin Check)。(PR-098) +- 扁平表已被刪除的 group 不再留在 `tmdo_post_status_columns`:每次文章狀態變更都 UPDATE + 不存在的表並印出 DB error。(PR-106) ### Security(已驗證,無程式變更) diff --git a/readme.txt b/readme.txt index ee06e6f..1875c41 100644 --- a/readme.txt +++ b/readme.txt @@ -114,6 +114,9 @@ The Classifier tab analyzes your existing `wp_postmeta` data (access frequency, * Logger info / notice lines only with WP_DEBUG_LOG (filter `tmdo_log_info`) * The public listings REST output withholds email, phone, address and IP fields even when declared public * Admin form posts are handled before the page renders; uninstall.php globals are prefixed +* Existing flat tables are upgraded from WP-CLI or WP-Cron only; a group waiting for its upgrade uses native meta, then a drift fix rebuilds it +* The index lock goes to the primary under read/write splitting; clearing the cold cache bumps a version instead of scanning the object cache group +* Groups whose flat table was dropped no longer cause database errors on post status changes = 1.2.0 = * `wp tmdo drift-check [--group] [--sample] [--fix]`: reports flat-vs-native drift per key (miss / diff / extra) and rebuilds drifted flat rows from native; native meta is never written, and aeav_only sites are refused