Download pgModeler Distributed in many flavours just pick yours
pgModeler is open-source software, and you can get its source code anytime if you want to compile it by yourself. As a convenience, we provide compiled binary packages at a really fair price. Also, if you're interested in evaluating a binary package, you can get a demo copy before proceeding with the purchase. Since this is an independent project, buying any binary package, you'll help keep its development alive and at full speed!
Stable: 0.9.3 December 30, 2020
Changes since: v0.9.3-beta1 Summary: this was a long year of challenges, struggles, and concerns. Inevitably, the happenings during 2020 affected the development of pgModeler 0.9.3 but, fortunately, I've managed to deliver the stable release still in 2020 as I have promised months ago.
This last release of 0.9.3, as usual, brings only fixes for what was developed during the alpha and beta stages with minor new features.
The minor features introduced by this version is the inclusion of tables' check constraints in the data dictionaries generated by the exporting process. Another new functionality is the ability to select multiple relationships connected to a table by simply right clicking it and activating the "Select relationships" action.
The object finder was improved in such a way to allow to search objects in the database model using additional searching fields. Now it's possible to search relationships by the involved tables and foreign keys that represent them and constraints by their related columns.
The diff feature was properly patched and now can produce more precise results during partial diffs done from the database model's changelog.
There were other important fixes in several parts of the software. Some of them are related to crashes during the importing process or during object selection in database designing.
The data dictionary generation was also fixed in such a way to include default values of columns associated with sequences.
The command-line interface was not working properly in 0.9.3-beta1 by rejecting a certain combination of valid parameters. The bug was fixed and now it is running as expected.
The whole set of changes of this release (considering the alpha and beta stages) has 242 entries being 61 new features, 102 changes/improvements, and 79 bug fixes. Below, all the changes since 0.9.3-beta1, for the complete list of changes on the entire development timeline, please, take a look into the CHANGELOG.md.
* [New] Added support to deterministic and provider attributes in collations.
* [New] Added missing check constraints in the data dictionary.
* [New] Added support to selecting all relationships of a table at once via right-click on a table > select relationships.
* [New] Added extra search fields in ObjectFinderWidget. Now it's possible to search relationships by the involved tables (source and destination table), constraints by their columns (source and referenced columns), and relationships by the foreign keys related to them.
* [Change] The warning message about the unchecked option related to drop missing objects now pops up only when there are partial diff filters configured.
* [Change] Improved the extended fade in/out options for tables/views/foreign tables.
* [Change] The partial diff filters generated from changelog will ignore table children objects in order to avoid the wrong generation of diff code.
* [Change] Minor refactoring in DatabaseModel::addChangelogEntry in order to use new attributes to define changelog operations.
* [Fix] Fixed a crash when trying to select children objects of a schema that has no rectangle defined.
* [Fix] Fixed a crash during the importing of domain objects.
* [Fix] Fixed a crash during the importing of objects into the current model in very specific cases when the model had some tables/views referencing columns added by relationship.
* [Fix] Fixed the full diff switching when there are no filtered objects in ModelDatabaseDiffForm.
* [Fix] Fixed a bug in DatabaseModel::addChangelogEntry that was causing the registration of empty signature for some objects.
* [Fix] Fixed a bug in CLI that was not accepting the use of --list-conns parameter
* [Fix] Fixed the data dictionary generation in such a way to include nextval(sequence) calls in the "default value" column.
* [Fix] Fixed a bug when configuring spatial data types during reverse engineering/diff.
* [Fix] Fixed a bug in Catalog::parseDefaultValues that was causing ARRAY values to be wrongly split.
* [Fix] Fixed a bug that was causing infinite validation of imported sequences.
Develop: 0.9.4-alpha May 12, 2021
Changes since: v0.9.3 Summary: it took almost half-year to conclude the first alpha release of 0.9.4 due to several problems I was facing. Anyway, I kept working on pgModeler at a slower pace and releasing snapshot buildings until we had reached an acceptable state of maturity for an alpha release.
Attending to some requests, I dedicated some time to bring support for multiple layers. Basically, pgModeler now allows graphical objects to be in different layers which can be toggled in a dedicated widget in order to denote a custom context depending on the user's need. Additionally to multiple layers support, it was added support for displaying layers rectangles around the objects in order to demonstrate in which layer an object is in. The CLI also has been patched in such a way to fix models created in an older version (until 0.9.3) so they can support multiple layers correctly.
The metadata handling was improved in such a way to allow the manipulation of layers' information. Another improvement on this feature was the addition of a new option that allows the merging of duplicated text boxes, generic SQL objects, and tags. By default, duplicated objects of those kinds are ignored.
This release also brings support for configuration parameters and transform types on functions and procedures, and the support for PARALLEL attribute on functions. The import and diff processes were also improved to support the mentioned attributes on functions and procedures.
There were other improvements in the general usage of the tool. For instance, the main window can now be resized to a minimum of 640x480 attending to the requests of those who work on smaller screens. In the design view, now it's possible to change the color of the grid lines, canvas background, and page delimiter lines on the general settings.
Other fixes and improvements that are worth mentioning: the removal of the diff option "Trucante before alter columns" due to the risk of data loss in very specific use cases. The database model loading process was fixed and now it loads correctly the model's changelog entries without raising errors. Several fixes were also applied to the code generation to avoid malformed SQL code.
Finally, the whole set of changes of this release has 67 entries being 13 new features, 25 changes/improvements, and 29 bug fixes. Below, some key changes are highlighted. For the complete list of changes, please, take a look at the CHANGELOG.md.
* [New] Added compatibility code that allows loading models created in versions before 0.9.4-alpha without losing layers and active layers information.
* [New] Added an option to the metadata handling operation that serves to indicate if duplicated objects (textboxes, tags, generic sql) must be merged or not.
* [New] Added support for configuration parameters and transform types on functions and procedures.
* [New] Added the ability to rename the default layer.
* [New] Added support for setup, in general settings, the custom color for grid lines, canvas area and page delimiter lines.
* [New] Added support for multiple layers on the model.
* [New] Added support for PARALLEL attribute to functions.
* [Change] Minor adjustments on Messagebox resizing during first display.
* [Change] Minor improvement on Messagebox in order to display the stack trace toggle button in a more intuitive way.
* [Change] Changed the behaviour of the method ObjectsScene::removeLayers, now it'll allow the resetting or not the layers of the objects.
* [Change] Adjusted the minimum size of the main window to 640x480 so it can fit in smaller screens.
* [Change] Change on the search path for PluginsDir to use getPathFromEnv().
* [Change] DatabaseModel will now create a default layer in the constructor.
* [Change] The database model will add the default layer to the loaded model if there isn't a single layer identified.
* [Change] DatabaseModel when loading older database model files will generate random layer colors.
* [Change] Improved the window title of DataManipulationForm in sucha a way to display the currently browsed table.
* [Change] Improved the selection of layers to be associated to object in context menu (Quick > Set layers). Now a floating widget is use to select multiple layers for the object selection in the canvas area.
* [Change] Updated the sample models to use "layers" attributes on graphical objects.
* [Change] pgModeler CLI will now rename "layer" attributes to "layers" in order to reflect the multiple layers support for older models.
* [Change] The option "Truncate before alter columns" in the diff process was removed since its use is discouraged and dangerous in some situations.
* [Fix] Minor fix in the table's catalog query in order to avoid setting up a partitioning strategy when the table is not a partitioned one.
* [Fix] Minor fix in function.sch in order to generate transform types only for PostgreSQL >= 9.5.
* [Fix] Minor fix to avoid black canvas when using settings from 0.9.3 or below on 0.9.4-alpha.
* [Fix] Minor fix in ObjectsScene in such a way to update layer rects when the grid alignment option is toggled.
* [Fix] Fixed the buttons shortcuts on LayerConfigWidget.
* [Fix] Minor fix on SchemaView to compute the last position any time the object is reconfigured.
* [Fix] Fixed the key combination to trigger the magnifier tool.
* [Fix] Minor fixes in ModelWidget, MainWindow to update scene layer settings correctly.
* [Fix] Fixed the CLI in such a way to update scene layer settings so the exporting processes can generate graphical files correctly.
* [Fix] Fixed a bug in the layers removal process that was causing objects to be placed in a incorrect layer index after the removal.
* [Fix] Fixed the "Fix" menu in main tool bar.
* [Fix] Fixed a bug in ModelWidget that was causing overlay to be displayed when a textbox object was selected.
* [Fix] Fixed wrong text in collationwidget.ui.
* [Fix] Fixed a bug during the loading of changelog entries.
* [Fix] Fixed the display of warnings during export in ModelExportForm.
* [Fix] Fixed the display of warning messages during export in ModelDatabaseDiffForm.
* [Fix] Fixed a malformed SQL code for triggers.
* [Fix] Fixed the broken build on Qt 5.9.x.
* [Fix] Fixed a bug that was preventing special PKs to be properly configured.
* [Fix] Fixed the SQL generation of functions based on internal language.
Purchase an access key and support this project. Pay using PayPal™, Stripe™, or Bitcoins and enjoy ready-to-use packages.
Get the binary packages by using an access key previously purchased.
If you want to compile pgModeler by yourself, you can grab the source code from the official repository.
pgModeler has two main development branches: master and develop. The master branch is where features considered stable can be found. The development branch, reserved for alpha and beta releases, is where patches, new unstable features are placed and tested.
You can retrieve the source using the git command by running the following: