在 Mac 上用 SQL 查詢 Beancount 帳本
開啟 .beancount,將交易、分錄、餘額和中繼資料作為 SQL 資料表查詢,或向 rledger 傳送 BQL。帳本仍為文字檔,使用自己的編輯器修改。
適用於 Mac首次選擇 Beancount 時下載驅動程式


概覽
- 查詢語言
- SQL
- 驅動程式
- 首次使用時下載
- 連線方式
- 檔案
- iPhone 與 iPad
- 無法開啟
開啟帳本
TablePro 執行 rledger 或 Python Beancount 讀取帳本。需要選擇時請安裝 rledger:兩者並存時優先使用它,只有它能執行 BQL,並將驗證輸出填入 diagnostics 資料表。
在連線表單用 Browse… 選擇檔案。帳本路徑就是整個連線,無主機、連接埠、密碼或資料庫。.beancount 也可從 Finder 開啟,並支援匯入 beancount:///path/to/main.beancount URL。
從 Finder 開啟的 App 不繼承 shell 的 PATH。若後端在 Terminal 可執行但在此不可用,請用 launchctl setenv TABLEPRO_RUSTLEDGER_BINARY 或 TABLEPRO_BEANCOUNT_PYTHON 指定並重新啟動。
Python 後端執行 Beancount 附帶外掛程式,其他 plugin 指令屬於第三方程式碼,在連線中啟用 Run Ledger Plugins 前會跳過。跳過的外掛程式列在 diagnostics。
查詢帳本
資料表涵蓋交易和分錄、帳戶、餘額及餘額斷言、價格和商品、所有其他指令、中繼資料、標籤、連結及來源檔案。分錄透過 transaction_id 聯結交易,帳戶依名稱聯結。
金額已完成記帳、算術、成本和價格解析,分錄成本和行內價格有獨立欄位。交易、分錄及若干指令資料表含 source_location,例如 main.beancount:42,可從紀錄追溯來源檔案行。
查詢前加 BQL: 將其傳送給 rledger 而非資料表。BQL 結果支援瀏覽、列數和分頁,不支援 SQL 參數。
include 支援具體路徑和 glob,所有帳本檔案及參照文件均被監控。在編輯器儲存後,下次查詢無須重新連線即可讀取。連線始終處於 安全模式 Read-Only,拒絕 INSERT、UPDATE、DELETE 和結構修改。
移動資料
資料表或查詢結果可匯出為 CSV、JSON、SQL、XLSX、Markdown、HTML與XML。TablePro 可作為資料庫開啟的其他檔案包括 SQLite、DuckDB 和 Parquet。
iPhone 與 iPad
iPhone 與 iPad App 沒有 Beancount 驅動程式。從 Mac 同步的 Beancount 連線會顯示在清單中,但無法開啟。
限制
- TablePro 開啟帳本時,將其讀取至 23 張唯讀 SQL 資料表中,不會寫回帳本。
- 需要在此 Mac 安裝 rledger 或 Python beancount。
關於 Beancount 的問題
有錯誤的帳本還能開啟嗎?
透過 rledger 可以。驗證失敗時仍映射帳本,每個問題作為 diagnostics 中的一列,含檔案、行號、嚴重程度和訊息。
一個連線能開啟多個帳本嗎?
一個連線對應一個帳本檔案,無法切換。主檔案若 include 其他檔案,會全部載入,也支援 glob。
取得 TablePro
需要 macOS 13 Ventura 或更新版本