尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

从 Ledger/Hledger 迁移到 Transity:ledger2transity 导入完整教程

从 Ledger/Hledger 迁移到 Transity:ledger2transity 导入完整教程 从 Ledger/Hledger 迁移到 Transityledger2transity 导入完整教程【免费下载链接】TransityKeep track of your , , , , on your command line with the plain text accounting tool of the future! 项目地址: https://gitcode.com/gh_mirrors/tr/Transity如果你正在使用 Ledger 或 Hledger 这类传统纯文本记账工具却苦于复式记账的借贷概念复杂、账户层级容易混乱那么 Transity 或许是你一直在等的未来记账工具。本文是一份完整的Ledger/Hledger 迁移教程重点讲解如何通过项目自带的ledger2transity 导入脚本把已有的.journal数据一键导出为 CSV再转换成 Transity 的 YAML 日记账格式最终用transity balance等命令验证迁移成果。全程无需手工重录任何一笔交易跟着步骤走即可。为什么值得从 Ledger/Hledger 迁移到 Transity在开始Ledger 迁移之前先花一分钟了解 Transity 的核心设计理念这决定了迁移后你的账本会是什么样以交易而非账户为核心不再需要纠结 debit/credit、asset/liability每笔记录只有清晰的from付款方和to收款方就像日常说话一样自然。账户与实体分离钱包、银行卡是物理账户同事、公司、超市是实体消费目的则用tags表达三者互不混淆。基于 YAML 的日记账格式纯文本、可版本控制、可 diff、可脚本化数据永远属于你自己。内置安全校验使用 BigInt 分数避免浮点误差还会自动核对交易与校验余额是否匹配。这些特性让 Transity 在可读性和安全性上都比传统记账工具更胜一筹也是无数用户选择Hledger 数据迁移的根本原因。第一步安装 Transity做好迁移前准备Transity 是一个 Rust 程序安装非常简单一条命令即可完成cargo install transity安装完成后在终端输入transity即可查看全部命令手册。迁移用到的关键命令包括balance余额查询、transactions交易列表、transfers逐行转账明细、entries收支明细、gplot趋势图等后面会逐一用到。同时请确保你的系统里已经安装了 Ledger CLI因为ledger2transity 导入脚本底层正是调用ledger --csv-format来完成数据导出的。第二步用 ledger2transity 脚本导出 CSV这是整个ledger2transity 导入教程的核心步骤。项目自带了一个名为ledger2transity.sh的 Bash 脚本位于仓库根目录用法如下./ledger2transity.sh examples/hledger.journal transactions.csv把examples/hledger.journal替换成你自己的账本文件路径即可。脚本会自动完成以下工作调用ledger --file读取你的账本按日期排序并输出为 CSV自动处理交易备注为空的情况修正 CSV 中双引号的转义问题。导出的 CSV 包含 7 列date日期、idID、from付款方、to收款方、amount金额、note备注、tags标签。你可以先用cat transactions.csv快速检查导出结果是否完整。第三步把 CSV 转换为 Transity YAML 日记账拿到 CSV 之后下一步就是把它转换成 Transity 的 YAML 日记账文件。你可以使用在线 CSV 转 YAML 工具也可以用任意脚本语言自行转换。转换的目标格式如下owner: anna commodities: - id: € name: Euro entities: - id: anna accounts: - id: giro transactions: - title: Salary transfers: - utc: 2013-12-31 from: good-inc to: anna:giro amount: 500 €参考文件 examples/journal.yaml 里有完整的格式示例强烈建议转换前先阅读一遍确保字段名、缩进完全对齐。第四步迁移后的数据清理3 个必踩的坑CSV 转换出的 YAML 通常不能直接使用因为 Ledger 与 Transity 的数据模型存在差异。根据官方文档Ledger/Hledger 迁移后必须手动处理以下 3 个问题合并相邻条目Ledger 的每个 entry 只借贷一个账户而 Transity 的每笔交易必然涉及from和to两个账户。对于支出基本做法是把第二条记录的 Ledger 账户名复制到第一条记录的from字段中。收入方向可能颠倒from和to取决于 payee 字段的用法收入类交易常常需要反转方向。账户名变成标签Ledger 的账户名如expenses:food在 Transity 中会被解释为tags而 Transity 的账户指的是物理账户如钱包、银行卡。另外备注会被重复写入 tags 字段需要按需清理。第五步验证迁移成果用 balance 和 gplot 检查数据清理完毕后就到了激动人心的验证环节。用 Transity 自带命令检查迁移后的账本transity balance journal.yaml transity transactions journal.yaml transity transfers journal.yamlbalance会输出所有账户的余额transfers则以一转账一行的形式展示每笔资金流向。如果你想直观看到资产变化趋势还可以配合 gnuplot 生成累计余额曲线transity gplot-cumul journal.yaml | awk /^$/ || /(EOD|^set terminal)/ || /€/ | gnuplot | imgcat迁移前记得用 Ledger 导出一份余额快照迁移后与transity balance的结果逐项比对确保数据分毫不差。第六步设置账户层级分隔符迁移时你可能会发现 Ledger 的账户名使用了:或/作为层级分隔符。Transity 默认同时接受:和/并自动归一化为/也就是说anna:giro与anna/giro等价。如果你想自定义分隔符只需在日记账文件中添加config配置config: separator: |注意分隔符只能是一个字符且一旦显式配置只有该字符会被当作层级分隔符。迁移常见问题速查Q迁移后余额对不上怎么办A优先检查收入类交易的from/to方向是否颠倒以及相邻条目是否已正确合并。QCSV 里有乱码或引号异常Aledger2transity 脚本已经处理了的转义若仍异常请检查源账本文件编码是否为 UTF-8。Q我有很多个账本文件怎么办ATransity 支持多文件可分别转换后再合并为同一份 YAML或按实体拆分维护。Q迁移后还想继续用 Ledger 怎么办ATransity 支持导出 (H)ledger 格式双向切换完全可行。总结一次迁移永久受益通过这份ledger2transity 导入完整教程你已经掌握了从Ledger/Hledger 迁移到 Transity的全部关键步骤安装工具、导出 CSV、转换 YAML、清理数据、验证余额。整个过程不需要重新记账历史数据完整保留。接下来你可以在全新的 YAML 日记账基础上享受 Transity 带来的直观交易模型、安全的数值运算和便捷的趋势可视化。祝你迁移顺利记账愉快【免费下载链接】TransityKeep track of your , , , , on your command line with the plain text accounting tool of the future! 项目地址: https://gitcode.com/gh_mirrors/tr/Transity创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表