Easy data modeling
Dynamic code generation
Functional database management
Dark / light UI themes
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.
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!
Description |
![]() Open-source version |
![]() Plus version |
---|---|---|
Software distribution | Source-code / Free of charge | Precompiled packages / Paid |
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. |
||
Source code | Purchase |
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 blogpgModeler is brought to you thanks to a great effort to create and distribute a quality product. This project is reaching out to levels of maturity never imagined. All this is the result of joint work between its author and the open source community. The software has a long way to go yet, and with your help, we'll keep maintaining a good job and bringing new improvements in each release. If you did like pgModeler and think it deserves a contribution, please make a donation via PayPal™, Stripe™ or Bitcoin. Note that donations don't grant access to binary packages.