The name pgModeler is an acronym of PostgreSQL Database Modeler and refers to an open source database modeling tool specially designed for PostgreSQL Relational Database Management System. This software reunites the concepts of entity-relationship diagrams and the features that PostgreSQL implements, including its extensions of the SQL standards.
The tool is full-featured and permits users to quickly create reliable database models and export them into several modes, from PNG images to SQL scripts and directly to a running server. The overall features available do not stand only on modeling and exporting. Having a huge set of features, this software is capable of reverse engineering existing databases producing their conceptual representation. It also compares models and databases, generating SQL scripts that can be used to synchronize the database to the most recent model version.
The application also counts with an interface that validates the objects inside the model in order to avoid the generation of broken SQL code and much more. Below the project's key features are quickly described:
Create different types of objects with an easy interface: pgModeler supports the creation of the most basic object like a simple column as well advanced objects like user-defined languages, functions, operators, and many others with easy-to-use forms.
Automatic generation of columns and constraints: with the column propagation mechanism, pgModeler automatically creates columns and constraints as the user links tables using the available relationships.
Export models in five different ways: pgModeler is capable of exporting the models to a SQL script file, to graphical format file (PNG and SVG), to a data dictionary in HTML format, or directly to a PostgreSQL server.
Generate models from existing databases: with the reverse engineering process, pgModeler can create reliable models based upon existing databases.
XML-based files: as an open source tool, pgModeler gives complete access to its source code as well to the contents of any generated file. All created files are XML-based, which means the user can handle these files in third-party softwares.
Restore previous work in case of failure: in case of unexpected quit, the user doesn't lose all the work because pgModeler stores temporary models and will recover them on the next startup.
Model structure validation and automatic fixes: to avoid breaking references or rules during design time and when exporting the model to PostgreSQL, pgModeler validates models from time to time. This validation process creates an almost error-free model.
Customizable features: with an extensive set of configurations, pgModeler gives the user the freedom to customize most of its behavior with an intuitive interface.
Generate SQL scripts to synchronize both model and database: through the diff feature, the user can generate SQL scripts based on the differences between model and database. The script contains the needed commands to keep synchronized both the database and model.
Manage existing databases: pgModeler provides a simplistic database management module where it is possible to run SQL commands, explore the objects and handle data.
Command line interface to automate processes: the CLI offers a good set of operations that do not require the GUI to be running. One of these features is the export process that can be integrated into third-party scripts to automate deployment processes. Another useful feature is the model file fix, which consists of repairing a model's structure to make it loadable again (this feature is also available in the GUI) and much more.
Additional features: some other essential features are object finder for large models, the plugin development interface, support to geospatial data types (as implemented by PostGiS 2.x extension), translatable user interface, and many others as detailed throughout this documentation.