SQL-Ledger vs LedgerSMB
Both descend from the same code. LedgerSMB forked from SQL-Ledger 2.6 in 2006 and has since rewritten most of what it inherited; SQL-Ledger carried on under its original author until 3.2 and is now maintained by the community that used it, including us. This page is for someone choosing between them, or holding a dataset from one and wondering about the other.
Where they came from
SQL-Ledger was written by Dieter Simader from 1999 as a Perl CGI application on PostgreSQL, released under the GPL. In 2006 a group of contributors forked version 2.6 as LedgerSMB, initially to ship security fixes faster, then to restructure the code. The two have not exchanged code since, so a 2006-era similarity in screens and tables is the only thing they still share.
What each one is today
| SQL-Ledger 3.2 | LedgerSMB 1.x | |
|---|---|---|
| Code | Perl CGI, one script per module, PostgreSQL; small and readable, no build step. | Perl on a PSGI/Plack stack with a Dojo JavaScript front end and much of the logic in PostgreSQL stored procedures. |
| Modules | AR, AP, GL, orders and quotations, inventory with assemblies, POS, payroll, time cards, vouchers, recurring transactions, multi-currency, document control. | AR, AP, GL, orders and quotations, inventory, multi-currency, reconciliation. Payroll and POS were removed after the fork; time cards remain in reduced form. |
| Permissions | Roles built from the menu tree; each user has a login and a role. | Database roles per user and per permission, enforced by PostgreSQL. Finer-grained, and more to administer. |
| Documents | HTML, LaTeX, text and XML templates edited in the browser, one set per language. | Template Toolkit templates (HTML, LaTeX, CSV), edited on the server or through the UI. |
| Interface | Plain HTML forms; on this hosting restyled with Bootstrap 5 and usable on a phone. | Single-page style Dojo interface; heavier, more interactive. |
| Multi-company | One database per company; a login can reach several. | One database per company; users are database roles within it. |
| Upgrades | SQL upgrade scripts applied automatically at login; 2.x datasets upgrade to 3.2 in one pass. | Versioned migrations; 1.2 → 1.3 was a schema rewrite, later steps are incremental. |
| Install | Apache + Perl + PostgreSQL, or hosted here in minutes. | Docker images are the usual route; a manual install needs the Plack stack and a Dojo build. |
| Licence | GPL v2 | GPL v2+ |
How to choose
- You want payroll, point of sale, or the fuller set of small-business modules — SQL-Ledger has them; LedgerSMB removed them.
- You want database-level separation of duties, with permissions the database enforces regardless of the application — that is LedgerSMB’s strongest point.
- You have an old SQL-Ledger dataset — it upgrades to 3.2 directly. Moving it to LedgerSMB means the 1.2 migration path, which is a rewrite of the data, and losing the modules above.
- You want something you can read and change — SQL-Ledger’s code is a few dozen Perl files with SQL in plain sight; customisations are small and survive upgrades.
- You want a modern single-page interface — LedgerSMB’s Dojo front end is closer to that, at the cost of weight; SQL-Ledger’s forms are plainer and faster over a poor connection.
Moving a LedgerSMB dataset to SQL-Ledger
A LedgerSMB 1.2 database is close enough to SQL-Ledger 2.6 that the stock upgrade scripts take it forward;
we have done this for several customers. Later LedgerSMB versions need a data migration through the
accounting tables rather than a schema upgrade, which we do case by case. Either way, send us a
pg_dump and we will tell you what it involves. Get in touch.
See everything SQL-Ledger does · How SQL-Ledger works · SQL-Ledger vs Odoo Community · User manual