跳至內容

資料生命週期

常見問題之一是:什麼會讓 data.json 變大、什麼會讓它縮小,又是否需要手動清理?簡短答案是:不需要手動清理。以下說明其運作方式。

資料存放位置

本機資料的單一真實來源,是應用程式資料目錄中的 SQLite 資料庫。你在同步資料夾裡看到的 data.json,則是應用程式依該資料庫重寫的快照。它既是同步承載資料,也是人類可讀的備份,而不是只會持續附加內容的日誌。

由於檔案會重寫,其大小可能在兩次執行之間縮小:過期的刪除標記與已清除項目只是不再寫入。刪除 data.json 不會「壓縮」任何東西;應用程式只會從資料庫重新產生相同的快照。

哪些內容會讓它變大

  • 使用中、已完成與已歸檔的任務(你的歷史記錄依設計會保持可搜尋)
  • 專案、分區、領域、人員與已儲存的篩選條件
  • 附件的中繼資料(每個附件約數百位元組;檔案本身另存於 attachments/
  • 已刪除項目的刪除標記,讓其他裝置得知刪除操作

哪些機制會自動縮小檔案

  • 刪除標記到期:刪除記錄會在保留期限後移除(預設為 90 天)。
  • 清除垃圾桶:「永久刪除」(單一項目或全部清除)會立即移除資料,只保留刪除標記直到期限屆滿。
  • 附件清理:孤立的附件中繼資料與過期的待傳輸項目,會以有次數上限的重試機制移除(「設定 → 資料」中也提供手動清理)。

為什麼使用單一檔案,而不拆分封存資料

已歸檔任務刻意保留在同一份同步文件中。檔案後端(WebDAV、資料夾、Dropbox)各自獨立上傳檔案。若將使用中與已歸檔資料拆成不同檔案,歸檔或取消歸檔就會成為跨兩個檔案的交易,可能只完成一半,使裝置之間產生分歧。一份文件可以作為一個不可分割的單位合併。長期的承載資料最佳化方向,是在既有修訂版本中繼資料上實作增量記錄同步,而不是增加更多檔案。合併規則請參閱同步演算法

實際容量預期

一般任務使用數年後,資料量通常落在數百 KB 至數 MB;如果你附加檔案或音訊,相較之下仍遠小於 attachments/ 資料夾。若覺得快照過大,請清空垃圾桶、在「設定 → 資料」執行附件清理,並先檢查 attachments/,再考慮 JSON 的大小。

Mindwtr 是免費、開放原始碼且在地優先的應用程式。
Getting Things Done 與 GTD 是 David Allen Company 的註冊商標。Mindwtr 與 David Allen Company 無關,亦未獲其背書或贊助。