Hacker News new | ask | show | jobs
by darcys22 1596 days ago
Shameless self plug: ive been building a similar open source command line accounting system

https://github.com/darcys22/godbledger

Its heavily inspired by both ledger and beancount but my biggest issue with them is that text files arnt great for double entry bookkeeping. Having a relational database is the better option which is what GoDBLedger has.

After a certain point a business cant keep track of its transactions in text files because there are simply too many of them, so these systems really only scale to personal finance levels (few hundred transactions maybe thousand transactions).

In addition building plugins that can import your whole text file into a sql system so you can query them is redundant. Just have it in a relational database to start with.

5 comments

You’re spot-on about this. Even for my personal finance, I have to apply classification rules at import time and I can’t bulk edit transactions to reclassify them after the fact. As a result I am looking for a replacement, although a requirement for me is some sort of fava equivalent.
> I can’t bulk edit transactions to reclassify them after the fact.

If you store your transactions in a plaintext format, why don't you use CLI tools? I just renamed a bunch of accounts using sed for instance, in a hledger journal.

Transactions with a specific regex payee need to be reclassified into a specific expense account. Yes, I could write a sed script to do this. No, I will not write a sed script to do this.
UPDATE transactions SET account = "Income" WHERE account = "Expense";
sed 's/Expense:/Income:/'
Thats pretty much what I've been working on.

https://youtu.be/19moSl4YFeI

I have also written a ledger using sqlite and go. It is not open source (yet) because somewhere in the git history may be traces of personal details. But at some point I think I will open it.

The way it works now is that I generate a directory structure from my bank account transactions. In each directory I put a text file thay describes my accounting transactions. The program parses this and inserts it into the database. From there it can generate reports.

Nice! sounds pretty cool.
My ledger file has over $20K entries. Although I'm cheating: I actually input transactions into another SW and simply convert its format to Ledger.
Interesting! Whats the other software?

I actually love ledger, and GoDBLedger can read in ledger files for this reason. I hate to throw negative feedback at other open source systems because the ultimate goal is to automate the financial process and we are really all working together to achieve that.

KMyMoney. Data entry is a lot easier than in Ledger. I use Ledger only for occasional reports.
Problem: all kind of tools support different kind of databases. For a ledger I would, of course, use PostgreSQL - understandung your README.md right this is not supported, instead just MySQL and Sqlite.

C´mon, you do not like textfiles but you do NOT support PostgreSQL?

Using plain text as the storage medium is not a bug, it's a feature.

Anyway, Martin is working on v3 which is moving the core of the parser into a complied language, in order to make it even faster when parsing large datasets.