Blog
All Blog Posts | Next Post | Previous Post
TMS Data Modeler source code now available!
Today
After more than two decades of life as a closed-source product, the full source code of TMS Data Modeler is now publicly available on GitHub:
github.com/tmssoftware/datamodeler
This post is a quick tour of what the release means, what's in the repo, and why opening it up took more than just flipping a switch.
A quick refresher on TMS Data Modeler
TMS Data Modeler is a visual database design tool for Windows, written in Delphi.

In a nutshell, it lets you:
- Design databases visually with entity-relationship diagrams
- Generate DDL scripts to create databases
- Generate ALTER scripts to update existing databases between versions
- Reverse-engineer existing databases
- Compare versions and projects
- Archive history and validate models
- Convert models between different database systems
Supported databases: SQL Server, Firebird, Oracle, PostgreSQL, MySQL, and SQLite.
And for TMS Aurelius users the ORM framework for Delphi Data Modeler is the most natural way to work in a database-first style: model your schema visually, then generate the Aurelius entity-mapped classes directly from the model.
A bit of history
Data Modeler has been around far longer than its current name suggests:
- Late 1990s / early 2000s originally developed by a Brazilian company as an internal tool. It wasn't even primarily a modeling tool back then: it was a CRUD form generator, and the database modeling part existed only to feed metadata into the form generation.
- Mid 2000s acquired by Devgems and rebranded as DevGems Data Modeler.
- Later acquired by TMS Software and re-released as TMS Data Modeler.
More than twenty years of evolution land in the repository you can now git clone.
Why we're releasing the source
Several motivations led to opening up the source:
- Transparency customers can read, audit, and trust the code they rely on.
- Flexibility teams can adapt the tool to specific needs that wouldn't make sense as features in the mainstream product.
- Community contributions pull requests are welcome, and improvements from the community flow back to all users.
- Ecosystem alignment it brings Data Modeler in line with the rest of the TMS BIZ products, where source access is the norm.
- Learning both as a way to understand Data Modeler internals, and as a real-world example of a non-trivial Delphi application built on top of TMS components.
That last point deserves its own section.
A real-world example of TMS components in action
If you've ever wanted to see how TMS components fit together in a serious, production-grade Delphi application, the repository is a good place to read code. Among other things, Data Modeler uses:
- TMS Diagram Studio powers the entity-relationship diagram editor: the canvas, shapes, connectors, and the whole visual editing experience.
- TMS Scripter the entire scripting extensibility layer. Users can write scripts that automate tasks against the model, and that fully customize the class-generation output.
- TMS Aurelius used specifically in the export / code-generation task, to reuse types declared in Aurelius units when emitting entity classes. (Data Modeler does not use Aurelius as its own persistence layer.)
- TMS VCL UI Pack the entire desktop UI: ribbon, menus, edits, grid, and the rest of the controls that make up the application's look and feel.
Plus a non-TMS dependency: JAM Software Virtual TreeView.
For a Delphi developer evaluating these components, reading how they're wired up in a real product is often more useful than any tutorial.
What it took to get here
Releasing the source of a closed-source product is not just flipping a visibility flag. A closed-source codebase grows under the assumption that nobody else will ever read it and that assumption shows up in lots of small places.
To get Data Modeler ready for the public, we did a substantial pass over the code:
- Reviewed and sanitized the entire codebase
- Reorganized units into category folders
Model,Connectors,Dialogs, and others. Before the cleanup, every unit lived flat in a single folder - Broke remaining circular unit references so the structure makes sense as you navigate it
- Translated remaining Portuguese comments and identifiers (leftovers from the tool's origins)
- Removed several third-party dependencies, both to reduce licensing surface and to make ongoing upgrades to newer Delphi versions easier
- Removed the internal license-control machinery no longer meaningful with the source in the open
- Rebuilt the full CI/CD deployment pipeline
One deliberate non-decision: we did not rename units to follow a stricter naming convention. The folder structure already conveys scope, and renaming hundreds of units would be a lot of churn for very little gain. Over time, individual units may get renamed as we revisit them, but no top-down rename was warranted.
Given all the effort above, this new milestone of source code availability, the removal/refactor of several parts of application (no more licensing tool, splash screen removed, automatic updates disabled, among others), we updated the version number and the current available source code, binary and installers are now released as TMS Data Modeler 4.0
Built with TMS Smart Setup
The repository is fully prepared for TMS Smart Setup, which gives you two convenient flows.
Build from the command line from the repository root, run:
tms restore tms.snapshot.yaml -skip-registerSmart Setup resolves all third-party dependencies and builds the dm.exe binary.
Set up for development in the IDE running tms restore from an existing valid Smart Setup folder installs the required components into the IDE, so you can open dm/dm.dproj in Delphi 13 to build, debug, and explore the code interactively.
For end users who simply want to install the tool, the new CI/CD pipeline publishes installer binaries automatically to the GitHub Releases page no source involved.
A note on licensing
TMS Data Modeler is source-available, not open source. In short:
- Non-commercial use (learning, evaluation, education, open-source projects) does not require a paid license
- Commercial use still requires a paid license, available from the product page
- Contributions are accepted under the terms in the repository's LICENSE.txt
Support continues through the TMS Support Center as before.
Where to go from here
- Repository: github.com/tmssoftware/datamodeler
- Product page: tmssoftware.com/site/tmsdm.asp
- Documentation: doc.tmssoftware.com/biz/datamodeler
Clone it, build it, explore the code, file a PR or just keep using the binary releases. The choice is yours, and that's the point.
Wagner Landgraf
This blog post has not received any comments yet.
All Blog Posts | Next Post | Previous Post