Query sổ cái Beancount bằng SQL trên Mac
Mở một file .beancount và query transaction, posting, số dư và metadata của nó như các table SQL, hoặc gửi BQL tới rledger. Sổ cái vẫn là file text mà bạn sửa trong editor của mình.
Dùng được trên MacDriver được tải về ở lần đầu bạn chọn Beancount


Tóm tắt
- Ngôn ngữ query
- SQL
- Driver
- Tải về ở lần dùng đầu
- Cách kết nối
- Một file
- iPhone và iPad
- Không mở được
Mở sổ cái
TablePro chạy rledger hoặc Python Beancount để đọc sổ cái. Nếu bạn chưa cài backend nào, hãy chọn rledger: khi có cả hai, rledger được ưu tiên, BQL chỉ chạy qua rledger, và chỉ rledger điền kết quả kiểm tra vào table diagnostics.
Chọn file bằng Duyệt… (Browse…) trong form connection. Đường dẫn tới sổ cái là toàn bộ connection, không có host, port, mật khẩu hay cơ sở dữ liệu. File .beancount cũng mở được từ Finder, và URL beancount:///path/to/main.beancount import được.
Ứng dụng mở từ Finder không kế thừa PATH của shell. Nếu backend chạy được trong Terminal mà không chạy được ở đây, hãy chỉ đường dẫn tới nó bằng launchctl setenv TABLEPRO_RUSTLEDGER_BINARY hoặc TABLEPRO_BEANCOUNT_PYTHON, rồi mở lại ứng dụng.
Backend Python chạy các plugin đi kèm Beancount và bỏ qua mọi chỉ thị plugin khác, vốn là mã của bên thứ ba, cho tới khi bạn bật Chạy plugin sổ cái (Run Ledger Plugins) cho connection đó. Các plugin bị bỏ qua được liệt kê trong diagnostics.
Query sổ cái
Các table bao gồm transaction và posting, account, số dư và balance assertion, giá và commodity, mọi chỉ thị khác, metadata, tag và link, cùng các file nguồn của sổ cái. Posting join với transaction qua transaction_id, còn account join theo tên.
Số tiền đã qua bước booking: phép tính, giá vốn (cost) và giá (price) đều đã được tính xong, còn giá vốn của posting và giá ghi kèm nằm ở các cột riêng. Transaction, posting và một số table chỉ thị có cột source_location như main.beancount:42, nên mỗi dòng dẫn ngược về đúng dòng trong file.
Thêm tiền tố BQL: vào query để gửi nó tới rledger thay vì các table. Duyệt, đếm dòng và phân trang đều dùng được trên kết quả BQL; tham số SQL thì không.
Các chỉ thị include đều được đọc theo, cả đường dẫn cụ thể lẫn glob, và mọi file sổ cái cùng tài liệu được tham chiếu đều được theo dõi. Lưu một thay đổi trong editor của bạn, và query kế tiếp sẽ đọc được nó mà không cần kết nối lại. Connection luôn ở mức Safe Mode Read-Only, nên INSERT, UPDATE, DELETE và mọi thay đổi schema đều bị từ chối.
Di chuyển dữ liệu
Export table hoặc kết quả query ra CSV, JSON, SQL, XLSX, Markdown, HTML và XML. Các loại file khác mà TablePro mở như cơ sở dữ liệu gồm SQLite, DuckDB và Parquet.
iPhone và iPad
Ứng dụng cho iPhone và iPad không có driver Beancount. Connection Beancount đồng bộ từ máy Mac vẫn hiện trong danh sách nhưng không mở được.
Giới hạn
- Khi mở sổ cái, TablePro đọc nó thành 23 table SQL chỉ đọc. Không có gì được ghi ngược vào sổ cái.
- Cần cài rledger hoặc Python beancount trên máy Mac này.
Câu hỏi về Beancount
Sổ cái có lỗi thì còn mở được không?
Qua rledger thì được. Sổ cái vẫn được dựng thành table ngay cả khi kiểm tra thất bại, và mỗi vấn đề là một dòng trong diagnostics, kèm file, dòng, mức độ và thông báo.
Một connection có mở được nhiều sổ cái không?
Mỗi connection là một file sổ cái, không chuyển qua lại được. Một file chính include các file còn lại sẽ đưa tất cả vào, kể cả qua glob.
Tải TablePro
Yêu cầu macOS 13 Ventura trở lên