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 and without sponsorship, by buying any binary package you'll help keep the development active 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-beta1 November 08, 2021
Changes since: v0.9.4-beta Attention: the database model file structure has changed since the last stable 0.9.3. Models created in older releases will certainly fail to load due to incompatibilities because some attributes in the XML code don't exist anymore or have changed during the development of 0.9.4-beta1. Before loading your database models in this new release, please, make sure to have a backup of them all and follow the steps presented by the model fix tool to patch the documents' structure. Not paying attention to this situation may cause irreversible data loss! If the fix procedures aren't enough to make your database models loadable again, please, ask for help at the official support channels! Summary: in preparation for the next major pgModeler release, the goal of this version was to bring only improvements and fixes to what was implemented until 0.9.4-beta and thus was done.
pgModeler 0.9.4-beta1 brings a few entries in its changelog since we didn't have serious bugs reported in the past two months. So, I decided to make some polishing in several portions of the tool.
Anyway, the improvement that is worth mentioning in this release is the experimental support for timescaledb in reverse engineering. So, now pgModeler is capable of generating models from databases that make use of that PostgreSQL extension without major issues. For pgModeler 0.9.4, we expect that any problem that eventually appears regarding the importing of timescaledb-based databases can be solved.
Below, the changelog entries of this version:
* [New] Added extra PostGiS data types to PgSQLType.
* [New] Created the method PgSqlType::isPostGiSType() which returns true if the current type is a PostGiS one.
* [New] Created the method PgSqlType::reset() that clears some attributes of the type.
* [New] Added the built-in type pg_lsn in order to make databases using timescaledb extension to be imported correctly.
* [Change] Minor adjustment in windowsdeploy.sh to create zip packages.
* [Change] Minor adjustment in demo version warning messages.
* [Change] Adjusted the catalog query filters in ModelDatabaseDiffForm to retrieve system and extension objects according to the checkboxes "Import system objects" and "Import extension objects".
* [Change] Adjusted the reverse engineering in such a way that the table children will follow the SQL disabled state of their parent tables.
* [Change] Allowing importing pg_lsn attributes in usertype.sch.
* [Change] Allowing the use of commas in enum type labels.
* [Change] Improved the output of model fix operation in CLI.
* [Change] The constants DataSeparator, UnescValueStart, UnescValueEnd, WildcardChar, FilterSeparator, FilterWildcard, FilterRegExp were moved from CoreUtilsNs to UtilsNs in order to be used in the parsers module.
* [Change] In SchemaParser the meta char $ds (dollar sign) was renamed to $ms (money sign). Also, a new meta char $ds (data separator) was added and translates to the special data separator character UtilsNs::DataSeparator.
* [Change] Minor adjustments in table.sch and foreigntable.sch schema files.
* [Change] Improved DatabaseModel::getUserDefTypesReferences in order to get all references to postgis data types.
* [Change] Improved ModelValidationHelper in order to set postgis extension a default comment when automatically creating it.
* [Change] PgSQLTypeWidget now can be configured in such a way to disallow the configuration of type qualifiers like length, precision, interval, and some others. This is useful when configuring data types for objects that don't require such attributes in the data type like parameter, aggregates, transforms, casts, operators.
* [Change] Changed the behavior of Parameter::getCodeDefinition when generating SQL code. Now, any type qualifier (except dimension descriptor ) will be discarded.
* [Fix] Fixed the catalog query that lists policies.
* [Fix] Added a minor workaround in DatabaseImportHelper::getType in order to treat the "any" pseudo-type correctly.
* [Fix] Minor fix in DatabaseImportForm in order to disable option buttons when no connection is selected.
* [Fix] Fixed a segfault when importing domains with long expressions.
* [Fix] Fixed the broken SQL generation for tables with columns/constraints disabled.
* [Fix] Fix the name of the checkbox related to updates checking to avoid breaking the building when enabling NO_UPDATE_CHECK via qmake.
* [Fix] Fixed the shortcuts of Copy/Paste actions in DataManipulationForm.
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: