Welcome to pgModeler!

Your Gateway to PostgreSQL Database Modeling

pgModeler: The BEST Database Modeler for PostgreSQL! - Version 1.2.0-beta1 is HERE!

What is pgModeler?

pgModeler is an open-source, cross-platform database modeler designed specifically for PostgreSQL.

Aiming to be a reference database design tool in the FOSS ecosystem for PostgreSQL, it offers a robust and feature-rich interface that enables efficient data modeling and rapid code deployment to servers.

One of its standout features is reverse engineering, which allows users to generate visual representations of existing databases, making it easier to understand and modify complex structures.

Additionally, pgModeler supports the generation of SQL scripts to synchronize a database model with an actual database through a process known as diff.

Beyond its core modeling capabilities, the tool includes a minimalist yet functional database server administration module. This module enables users to execute SQL commands, browse databases, and handle data through a simple and intuitive user interface.

For more details, visit the project’s official repository on GitHub.


Try pgModeler now!

pgModeler is available in two versions: an open-source version and a paid version. The chart below outlines the key differences between the two.

As an independent project without external sponsorship, your support plays a crucial role in sustaining development efforts. Purchasing binary packages or making donations ensures that development continues at full speed, guaranteeing the delivery of regular updates and exciting new features, as always!


LATEST RELEASES!
1.1.6 - December 21, 2024
Platform Download
Linux 64 (AppImage) Download
Linux 64 (Installer) Download
Windows 64 (Installer) Download
Windows 64 (Package) Download
macOS Download

Changes since: v1.1.5

This patch release for pgModeler 1.1.x brings the following improvements and fixes:

  • Fixed a bug in the FK relationships update routine that was causing more relationships to be deleted than what really needed to be.
  • Fixed a crash when creating a many-to-many relationship where one or more columns of the involved primary keys use generated default values (GENERATED AS).
  • Fixed a bug in the routine that updates relationships' generated objects that was causing the application to hang up when importing a simple hierarchy of tables.

1.2.0-beta1 - March 31, 2025
Platform Download
Linux 64 (AppImage) Download
Linux 64 (Installer) Download
Windows 64 (Installer) Download
Windows 64 (Package) Download
macOS Download

Changes since: v1.2.0-beta

New features

This release introduces several enhancements to improve database modeling workflows. The SQL source code editor now offers per-instance control line wrap along with an integrated search/replace widget. Debugging capabilities have been expanded with dedicated output tabs in the database import and diff forms. The diff feature restored the force object re-creation support in both CLI and GUI, but now with a type selection popup menu for fine-tuned object re-creation. The database model now provides finer control over SQL generation by allowing the disabled SQL code to go into the generated scripts. The extension object handling has been upgraded for better child object management (currently, only children types and schemas are tracked). The system objects can now have permissions assigned.

Changes and enhancements

The model objects widget now accepts an Alt + click over a graphical object, highlighting it in the design view. Redundant search/replace instances all over the tool were removed due to the integrated search/replace widget in the source code editor. The extension editing form now properly supports custom schema names in data types, while the database import process and the database model itself have been refactored for more reliable handling of extension-owned objects using the new extension object structure. The comparison operations in the diff process have been optimized to filter system objects correctly, and the function behavior type was simplified by dropping the STRICT type since it has the same semantics as RETURNS NULL ON NULL INPUT. The database import form, when in debug mode, will remain open so the user can inspect the commands and objects created during the process.

Bug fixes

  • Fixed some crashes during diff operations on extension-created tables.
  • Fixed the importing of columns using arrays of user-defined types.
  • Fixed the time zone persistence on the timestamp data type.
  • Removed false-positive diffs for functions with comments or STRICT behavior.
  • Fixed reverse engineering of uppercase type names.
  • Addressed crashes in identifier relationships with FK indexes.

Purchase Source code Download
Plus version Free of charge
Handle several object types with an intuitive interface
pgModeler simplifies database design by supporting the creation of both basic and advanced objects. Whether you're defining a simple column or working with complex elements like user-defined languages, functions, operators, and more, the tool provides intuitive, easy-to-use forms to streamline the process.
Automatic columns and constraints generation
With its column propagation mechanism, pgModeler automatically generates all columns and constraints when users link tables using the available relationship objects. This feature eliminates repetitive tasks and significantly boosts productivity.
Export models in five different ways
pgModeler offers versatile export options, allowing users to save models as SQL scripts, PNG images, SVG files, or data dictionaries in HTML format. Additionally, models can be deployed directly to a PostgreSQL server for seamless integration.
Generate models from existing databases
Through its reverse engineering feature, pgModeler can generate accurate and reliable models from existing databases, simplifying the process of understanding and modifying complex database structures.
XML based files
As an open-source tool, pgModeler provides full access to its source code and the contents of any generated file. All files created by pgModeler are XML-based, ensuring compatibility and allowing users to easily edit or process them using third-party software.
Restore previous work in case of failures
In the event of an unexpected quit, users won’t lose their work—pgModeler automatically saves temporary models with the most recent changes and restores them upon the next startup, ensuring peace of mind and continuity.
Model structure validation and automatic fixes
To prevent broken references or rule violations during the design phase or when exporting models to PostgreSQL, pgModeler performs regular validations. This feature ensures the creation of highly accurate, nearly error-free database models.
Customizable features
With a comprehensive set of configuration options, pgModeler offers users the flexibility to customize nearly every aspect of its functionality, tailoring the tool to their specific needs.
Generate SQL scripts to synchronize both model and database
Using the diff feature, users can generate SQL scripts by comparing a model to a database or two databases to each other. These scripts contain all the necessary commands to seamlessly synchronize the involved entities.
Manage existing databases
pgModeler includes a straightforward yet powerful database management module, enabling users to execute SQL commands, explore database objects, and manage data with ease.
Command-line interface to automate processes
The CLI provides a robust set of operations that can be executed without the need for the GUI. Key features include the export process, which can be integrated into third-party scripts to automate deployment workflows, and the model file fix, which repairs a model's structure to restore its loadability (this feature is also available in the GUI).
Secure database connections via SSH tunnels
The SSH tunnel adds a layer of security even in the absence of an SSL certificate when connecting to a remote PostgreSQL server. pgModeler offers a convenient way to configure and launch SSH tunnels quickly and efficiently.
Split database model format for improved version control
The split database model file format (.sdbm) is designed to enhance version control for model files by storing the XML code of each object in separate files. This approach makes it easier to track changes made to individual database objects, particularly when multiple team members collaborate on the same model.
Save and restore sessions in the database management module
This feature saves all details about the currently open SQL execution tabs, including typed commands and browsed databases, into a dedicated configuration file. When pgModeler is restarted, users can restore their previous session with a single click, eliminating the need to manually browse databases or reload saved commands into the SQL execution widget.
Query variables for SQL testing
This feature allows developers to test their queries using variables, which are dynamically replaced with actual values at the moment of execution, streamlining the query testing process.
Database backup utilities
pgModeler provides a user-friendly interface for executing commands like pg_dump, pg_dumpall, pg_restore, and psql. This feature was designed with users who are less comfortable with command-line tools in mind, enabling them to dump and restore databases effortlessly without ever leaving pgModeler's graphical interface.
Quickly create certain objects
This feature enables the creation of constraints, indexes, and relationships directly from the objects selected in the design view, eliminating the need to open editing forms or fill out multiple fields speeding up the database design process.
Quickly search and edit objects
This feature allows users to search for specific objects and open their corresponding editing dialogs without the need for mouse clicks, significantly enhancing productivity.
Additional features
Other notable features include an object finder for navigating large models, a plugin development interface, support for geospatial data types (as implemented by the PostGIS extension), a translatable user interface, and much more. For a comprehensive overview of all pgModeler's features, visit the official documentation.

PROJECT NEWS!

I proudly announce pgModeler 1.2.0-beta1!
UX/UI enhancements, pgModeler Plus, and much more!

Mar 31 2025

This release delivers some cool improvements to database modeling capabilities. The SQL source code editor has been upgraded with per-instance line wrapping controls and a built-in search/replace widget, centralizing these functions while removing redundant search implementations across the application. The debugging workflows are enhanced through dedicated output tabs in both database import and diff forms, providing clearer visibility into operations. When running in debug mode, the import form now remains open, allowing users to examine the executed commands and generated objects' code. The diff tool reintroduces the forced object re-creation option with added granularity - users can now select specific object types for re-creation through a dedicated popup menu in GUI. The SQL generation offers finer control by permitting disabled code segments to be included in output SQL scripts when needed. The extension objects received a better child object tracking (currently supporting types and schemas) and proper handling of custom schema names in managed data types. Those and some other user experience refinements are described in the full post.

Read blog


Screenshots

See what pgModeler is capable of

Under Construction New! Generate your own 90s page here! Under Construction