Mac で Beancount 台帳を SQL クエリ
.beancount ファイルを開き、取引、仕訳、残高とメタデータを SQL テーブルとして問い合わせるか、rledger に BQL を送れます。台帳はテキストファイルのままで、自分のエディタで編集します。
Mac で使用可能初めて Beancount を選ぶとドライバーをダウンロード


概要
- クエリ言語
- SQL
- ドライバー
- 初回使用時にダウンロード
- 接続方法
- ファイル
- iPhone と iPad
- 開けない
台帳を開く
TablePro は rledger または Python Beancount を実行して台帳を読みます。どちらかを選ぶなら rledger をインストールしてください。両方がある場合は優先し、BQL を実行できるのも、検証結果を diagnostics テーブルに入れるのも rledger だけです。
接続フォームの Browse… でファイルを選びます。接続に必要なのは台帳パスだけで、ホスト、ポート、パスワードやデータベースはありません。.beancount は Finder からも開け、beancount:///path/to/main.beancount URL をインポートできます。
Finder から起動したアプリはシェルの PATH を引き継ぎません。Terminal では動くバックエンドがここで動かない場合、launchctl setenv TABLEPRO_RUSTLEDGER_BINARY または TABLEPRO_BEANCOUNT_PYTHON で指定し、再起動してください。
Python バックエンドは Beancount 同梱のプラグインを実行しますが、第三者のコードである他の plugin 指令は接続で Run Ledger Plugins を有効にするまでスキップします。スキップしたものは diagnostics に表示します。
台帳を問い合わせる
テーブルは取引と仕訳、口座、残高と残高アサーション、価格と商品、その他すべての指令、メタデータ、タグ、リンクとソースファイルを含みます。仕訳は transaction_id で取引と結合し、口座は名前で結合します。
金額は算術、原価と価格を解決した記帳済みの値で、仕訳の原価とインライン価格は専用カラムに入ります。取引、仕訳と一部の指令テーブルは main.beancount:42 などの source_location を持ち、行から元の行番号を辿れます。
クエリの前に 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 を入手
macOS 13 Ventura 以降 が必要です