跳转到正文

每天都用 TablePro?购买许可证即可使用付费功能,并支持下个版本的开发。 购买许可证购买许可证,支持 TablePro

在 Mac 上用 SQL 查询 Beancount 账本

打开 .beancount,将交易、分录、余额和元数据作为 SQL 表查询,或向 rledger 发送 BQL。账本仍为文本文件,使用自己的编辑器修改。

适用于 Mac首次选择 Beancount 时下载驱动

侧边栏显示 Beancount 账本投影出的表,并显示 BQL 查询结果。

概览

查询语言
SQL
驱动
首次使用时下载
连接方式
文件
iPhone 和 iPad
无法打开

打开账本

TablePro 运行 rledger 或 Python Beancount 读取账本。需要选择时请安装 rledger:两者并存时优先使用它,只有它能运行 BQL,并将验证输出填入 diagnostics 表。

在连接表单用 Browse… 选择文件。账本路径就是整个连接,无主机、端口、密码或数据库。.beancount 也可从 Finder 打开,并支持导入 beancount:///path/to/main.beancount URL。

从 Finder 打开的应用不继承 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 应用没有 Beancount 驱动。从 Mac 同步的 Beancount 连接会显示在列表中,但无法打开。

限制

  • TablePro 打开账本时,将其读取到 23 张只读 SQL 表中,不会写回账本。
  • 需要在此 Mac 安装 rledger 或 Python beancount。

关于 Beancount 的问题

有错误的账本还能打开吗?

通过 rledger 可以。验证失败时仍映射账本,每个问题作为 diagnostics 中的一行,含文件、行号、严重程度和消息。

一个连接能打开多个账本吗?

一个连接对应一个账本文件,无法切换。主文件若 include 其他文件,会全部加载,也支持 glob。

获取 TablePro

Mac 应用可免费下载和使用。Starter 或 Team 方案添加可选功能。
下载 Mac 版

需要 macOS 13 Ventura 或更新版本