pgModeler is an multi-platform PostgreSQL schema engineering tool — locally installed,
Git-friendly, and built with a deep PostgreSQL specialization. Design schemas visually,
reverse-engineer production databases,
diff and sync across environments, and automate deployments through a powerful CLI.
No cloud dependency. No telemetry. No lock-in. Your schemas live in open files on your machine. Offered as community and commercial editions — both with the same core features.
Buy pgModeler Plus and fund Nullptr Labs,
ensuring you save time while keeping the project independent and evolving.
Changes since: v1.2.2
This patch release for pgModeler 1.2.x brings the following improvements and fixes:
* [New] Added the method TaskProgressWidget::setNoProgressState.
* [Change] Refactored MainWindow initialization by moving startup timers to a new startOtherTimers method.
* [Change] Improved MainWindow initialization control by overriding the showEvent method.
* [Change] Updated AboutWidget and WelcomeWidget UI layouts.
* [Change] Updated GlobalAttributes with new site URL.
* [Fix] Fixed a bug in DatabaseModel::loadObjectsMetadata that was causing crashes in some circumstances.
* [Fix] Fixed a bug in NumberedTextEditor that was copying all text when hitting Ctrl+C when there was only a portion of the text selected.
* [Fix] Fixed a bug in ModelValidationHelper that was not properly swapping ids between table children objects and their dependencies (e.g., trigger -> function).
* [Fix] Fixed a bug in the Connection class that was creating an invalid connection string when other params were manually specified.
*Changes since:* ***v2.0.0-alpha1***
**Summary:** pgModeler 2.0.0-beta continues the path opened by the previous alpha releases, bringing a focused set of improvements aimed at everyday usability, visual consistency, and application stability. This release introduces protections against accidental data loss, a fully customizable interface font, significant improvements to the SQL results experience, better diagnostics on crashes, and a clean separation between the Community and Plus Edition builds. Alongside these new capabilities, a number of important bugs have been fixed, making this the most advanced pre-release version of pgModeler 2.0 so far.
**Accidental data loss prevention:** When editing any database object, if you make changes and accidentally press Escape to close the form, pgModeler now detects unsaved modifications and asks for your confirmation before discarding them. This simple safeguard prevents frustrating accidents that could otherwise require re-entering complex configurations from scratch.
**Personalized interface font:** You can now choose any font installed on your system as the application's UI font directly from the Appearance Settings. pgModeler ships with the Exo 2 font as its new built-in default, giving the interface a clean and modern look. Your font preferences are saved and applied after a restart. The canvas object labels have also been updated to use the Montserrat font family for a more refined and readable appearance.
**Refreshed visual identity:** Application icons, logos, and the splash screen have been updated across all platforms with a more polished and consistent design. Popup menus in the inksaver, light, and dark themes now have a cohesive styled appearance with proper borders and separators.
**SQL results made easier:** Working with large query result sets is now more comfortable. Result loading can be cancelled at any time, and a progress indicator is shown while data is being loaded. A new context menu on the results grid offers quick actions to select all rows, auto-fit column widths, or auto-fit row heights. For very large result sets — over 10,000 rows — pgModeler warns before attempting a full resize, preventing the interface from freezing on oversized data.
**Better encoding awareness:** The server's character encoding is now displayed in the connection testing dialog and in the SQL execution and data management panels. This helps identify potential encoding incompatibilities before they turn into errors during database management sessions.
**Crash diagnostics in CLI:** When pgModeler command-line interface crashes unexpectedly, the application now captures a detailed diagnostic report and dumps it on screen. This includes human-readable information on Linux and macOS, with basic support on Windows. These reports make it significantly easier to investigate and report bugs.
**Data grid improvements:** The data grid now offers an option to skip conflicting rows silently when inserting data, allowing bulk inserts to continue without failing the entire operation when a conflict is encountered.
**Smarter file dialogs:** File save dialogs now always append the correct file extension automatically, and the extension updates as you switch between available file type filters — no more accidentally saving files without an extension. Recent files in the File menu now display the full file path in the tooltip, making it easy to distinguish between models with the same filename stored in different folders.
**Plugin API improvements:** Plugins now have more control over where their interface elements appear. They can add panels to the main window sidebar, to the SQL execution area, or choose not to dock any panel at all. Plugins can also integrate buttons directly into the welcome screen, providing a more native and integrated experience.
**Community and Plus Edition clarity:** The legacy demo mode has been removed entirely from the codebase. pgModeler is now cleanly split between the Community Edition (open source) and pgModeler Plus (commercial), with no hidden restrictions left in the community build.
**Breaking change — LATIN1 database compatibility:** If you work with PostgreSQL databases using the LATIN1 character encoding, please note that an internal separator character was changed to ensure compatibility with that encoding. This resolves errors that were previously triggered when performing diff or import operations against LATIN1-encoded databases. Models created in previous versions may need to be fixed via pgmodeler-cli in case of load problems.
**Bug fixes and stability:** Several important bugs have been fixed in this release. A crash that occurred when closing the application after a diff operation has been resolved. Model validation now correctly identifies broken references to types provided by PostgreSQL extensions. Discarding changes in the Settings window no longer leaves the connection configuration in an inconsistent state. Newly opened models are now correctly appended to the navigation history instead of being inserted in the wrong position. The import results button in the SQL tool is no longer enabled when a query returns no rows, which previously caused a crash. Finally, several issues with the custom interface font not rendering correctly on macOS and Windows have been resolved.
**Looking ahead:** With 2.0.0-beta, pgModeler enters a stable pre-release state. The focus for the final 2.0.0 release will be on polishing remaining rough edges, addressing community feedback, and ensuring solid stability across all supported platforms. Thank you for your continued support and for helping shape the future of pgModeler.
Feature highlights From schema design to production deployment
Visual schema construction
Design any PostgreSQL object visually — from simple tables to custom types, domains, operators, and procedural languages. The engine generates precise, production-grade DDL for every object.
Reverse engineering PLUS
Connect to any PostgreSQL server and reconstruct a full schema model from your live database. Recover legacy designs, document production schemas, or baseline a system for ongoing lifecycle management.
Incremental diff & sync PLUS
Compare your model against a live server. pgModeler generates the exact ALTER, DROP, and CREATE statements needed to synchronize the two states — no manual diffing required.
Validation & fixes
Catch broken references and rule violations at design time, before deployment. The validation engine checks cross-object dependencies and suggests automatic fixes.
Relationship-driven design
Link tables and pgModeler propagates columns, constraints, and indexes automatically. The column propagation engine handles inheritance and complex relationship chains.
Database management PLUS
Browse schemas, execute SQL, and manage data directly in the built-in module. Your model and your live database stay in the same workspace — no tool-switching required.
CLI for pipeline integration
Export DDL, run diffs, and push schemas to any environment — all from the command line, no GUI required. Fits naturally into any CI/CD workflow.
SSH tunneling PLUS
Connect securely to remote PostgreSQL servers over SSH tunnels. No VPN configuration needed — just your key and the host.
Git-friendly format PLUS
Save your schema as individual XML files — one per object. Each table, view, function, and policy becomes a separate file — making branches, diffs, and code reviews work naturally with any version control system.
No cloud dependency
pgModeler runs entirely on your machine. No account required, no server to connect to, no internet needed to open your own work.
No proprietary format
Model files are open, human-readable XML. Inspect them in any text editor, transform them with standard tooling, and store them anywhere — forever.
No SaaS lock-in
Your schemas are not hosted on our infrastructure. No subscription required to access files you created. Stop using pgModeler tomorrow — your work remains fully yours.
Built specifically for PostgreSQL Designed around PostgreSQL-native schema engineering workflows
Fully local PostgreSQL modeling and engineering workflow with offline-capable usage and no mandatory cloud infrastructure. Commercial editions use periodic license validation without requiring cloud-hosted workflows.
With the column propagation mechanism, pgModeler automatically creates all columns and constraints as the user links tables using the available relationship objects avoiding repetitive tasks and improving productivity.
pgModeler can export the models to a SQL script, to a PNG image, to an SVG file, in the form of a data dictionary in HTML format, or directly to a PostgreSQL server.
Model files are stored in open, human-readable XML. You can diff them line-by-line in Git, process them with standard tooling, or inspect them in any text editor — no proprietary format, no vendor dependency.
In case of unexpected quit, the user doesn't lose all the work because pgModeler stores temporary models with the most recent changes and will restore them in the next startup.
The validation engine checks cross-object references and constraint rules at design time, surfacing errors before deployment. Most issues can be fixed automatically.
Export DDL, run diffs, and automate schema deployments without launching the GUI. Designed to integrate cleanly into CI/CD pipelines and scripted workflows.
Connect to any live PostgreSQL server and reconstruct a full schema model from your existing database. Useful for documenting production systems, recovering legacy designs, or baselining a schema for ongoing lifecycle management.
Compare your schema model against a live PostgreSQL server and generate the exact ALTER, DROP, and CREATE statements needed to bring them in sync — no hand-written migrations.
Other notable features include an object finder for navigating large models, a plugin development interface, a translatable user interface, and much more. For a comprehensive overview of all pgModeler's features, visit the official documentation.
From the community Engineers who use pgModeler in production
“Great progress, pgModeler is the best tool for PostgreSQL, for sure.
I use pgModeler as a tool to verify the database model generated by an ORM system.
The database structure is automatically created based on classes in the application code, I review the resulting model to ensure it looks correct.”
“We have used pgModeler in several projects and one of the things that most pleases and surprises us is the performance of the tool. Whether for small projects or models with hundreds of tables, pgModeler is practical, lightweight and very powerful.
No doubt it's the best Open Source project of its kind.”
“I would like to leave my thanks and praise to the pgModeler team. I have been using the tool to model the entire database of my projects in Supabase and the experience has been fantastic.”
Ricardo AzevedoSystems Development Coordinator — AletoPalmas, Brazil
“We have used pgModeler quite extensively for our database design - from creating the detailed databases, schemas and other DB objects. It was very helpful, especially for the unending iterations of our design enhancements as requested by our client. The fact it created SVG image files and data dictionaries as well, also helped immensely with the documentation.”
“Having a data modeling tool is essential for us. We maintain a DM with more than 500 tables in pgModeler and it does it job perfectly! We developed some enhancement for generating SQL from the DM. Here it really help that pgModeler stores the DM in a well structured easy to read XML file.”
Andreas BrandtBusiness Requirements and Design — brandt ITGrasbrunn, Germany
Latest from Nullptr Labs Releases, fixes, and announcements
After months of development and refinement, we are proud to announce the release of pgModeler 2.0.0-beta — the most polished and mature pre-release version of the next generation of pgModeler so far. This release represents much more than a regular update. It marks an important milestone in the evolution of the platform, bringing significant usability improvements, better stability, a refreshed visual identity, and the beginning of a cleaner product structure built around the new Community and Plus editions. While version 2.0 continues to focus on PostgreSQL-first modeling and professional database workflows, this beta release puts special emphasis on something equally important: improving the day-to-day experience of developers, DBAs, architects, and teams that rely on pgModeler in real production environments.
The access to binary packages has changed. You must create a download token in the key management section before proceeding with the download.
Get source code
pgModeler has two main development branches: main and develop. The main branch is where features considered stable can be found. The development branch, reserved for alpha and beta releases, is where patches, new unstable features are placed and tested.
You can retrieve the source using the git command by running the following:
If you prefer, there are source tarballs ready to be compiled. Once you got the source, you can follow the instructions to compile pgModeler described in the Installation page.
Do you really want to generate a new token for this user? The current token will be invalidated and a new one will be sent by email.
Terms and Conditions
Data Privacy Terms
Access key recovery
Preparing your
payment, please wait...
Do not close the page or cancel the loading!
Payment invoice
Support Development Invest in the tools you use
Why Donate?
pgModeler is proudly maintained by Nullptr Labs. While open source, continuous development requires significant resources.
By contributing financially, you ensure the project's long-term sustainability. If pgModeler adds value to your workflow, consider supporting its evolution.
This is a voluntary contribution to open-source development and does not grant access to pre-compiled binaries. To purchase the installer, please visit the Purchase section.
10.00 USD
Preparing your
donation, please wait...
Do not close the page or cancel the loading!
Purchase successful
Thank you for your purchase! In a few minutes you'll receive an email containing the instructions on how to download your packages as well some important notes about your purchase. Note that some email servers can flag the email as spam so make sure to check your SPAM box too. In case of problems, please contact the developer from the Support menu.
Enjoy pgModeler!
Get a trial key — pgModeler Plus
Contact the developer
For feature requests or bug reports we kindly ask you to open a ticket on the GitHub issues page.