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 feature the software is capable to reverse engineer existing databases generating their conceptual representation, compare 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 to validate 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 several kind 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 easytouse 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 three different ways: pgModeler is capable to export the models to a SQL script file, to a PNG image file 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 loses 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 form.
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).