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 user to quickly create reliable database models and export them into several modes, from PNG image to SQL scripts as well directly to a running server. The overall features available does not stands 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 the 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: in order to avoid breaking references and/or rules during design time as well 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 to the user the freedom to customize the most of its behavior with an intuitive interface.
**Generate SQL scripts to synchronize both model and database: ** through the diff feature the user is capable to generate SQL scripts based on the differences between model and database. The script contains the needed commands to keep synchronized the database and model.
Manage existing databases: pgModeler provides a simplistic database management module where 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 not require the GUI to be running. One of these features is the export process that can be integrated to third party scripts to automate deployment processes. Another useful feature is the model file fix which consists in repair a model's structure to make it loadable again (this feature is also available in the GUI) and much more.
Additional features: some other important 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.