Download pgModeler Distributed in many flavours just pick yours
pgModeler is an open source software and you can get its source code anytime if you want to compile it for yourself. As a facility, we provide compiled binary packages at a really small price. Also, if you're interested in evaluate a binary package, you can get a demo copy before proceed with the purchasing. Since this is an independent project by ordering any binary package you'll help to keep its development alive and at full speed!
Current: 0.9.1 May 14, 2018
Changes since: v0.9.1-beta1 Summary: after eight months of hard work we finally have the stable release 0.9.1. This version is a mark in the pgModeler's development and so important as the release 0.8.2 in terms of improvements because it brought features requested long ago and that will make pgModeler even better to work with, being some of them: crow's foot notation support, multiple relationships for the same table pair, support to row level security, identity columns and much more.
For this release specifically (considering only the work after 0.9.1-beta1), the golden rule was to fix bugs, adjust the current features and introduce few new things and thus was done: 21 bug fixes, 14 changes/improvements and 7 new features.
The majority of new features are related to the CLI which received the ability to import and diff databases which can make it even better to integrate to automtated deployment processess or run quick tasks over models or databases without the need to open pgModeler's GUI.
Some important improvements were done in the overall performance of the SQL tool. The query execution and results display are a lot better now being quicker and less eager in terms of memory consumption avoiding crashes when querying large tables. The data manipulation also received a patch that makes the row duplication more efficient.
Now, for the fixes, another patch was introduced in order to resize correctly dialogs in HiDPI/Retina displays. Several reverse engineering bugs were fixes and now databases are imported more precisely compared to previous releases. Lastly, a bug that seems to happen only on macOS while dealing with large models is finally fixed and was related to some running threads messing around with the main process avoiding it to correctly save the model and causing hang ups sometimes.
The whole set of changes of this release (considering the alpha and beta stages) has 152 entries being 43 new features, 47 changes/improvements and 62 bug fixes. Below we highlight some of news for the work since 0.9.1-beta1, for the complete list of changes, please, take a look into the CHANGELOG.md.
* [New] Added support to line selection by clicking and moving the mouse over the line numbers widget in any source code field.
* [New] The validator now checks if the model has columns referencing spatial data types and creates the postgis extension automatically when fixing the model.
* [New] Added support to RESTART IDENTITY on truncate tables in DatabaseExplorerWidget.
* [New] Added support to diff operation in CLI.
* [New] Added support to import database from CLI.
* [New] Adding missing types regrole and regnamespace.
* [Change] Improved the copy/duplicate operation in order to copy rules, index, trigger and policies together to their parents.
* [Change] Added column names to the code completion widget used in the filter widget at DataManipulationForm.
* [Change] Improved the SQLExecutionWidget in such way that it'll display large amount of data more quickly and consuming less memory.
* [Change] Minor improvement in SQLExecutionWidget to show the amount of time took to run a query.
* [Change] Minor improvement in the text find widgets in SQL tool in order to make them closable via dedicated button.
* [Change] Improved the set tag operation in ModelWidget in order to cleanup the assigned tags to a set of objects.
* [Change] Refactored all the CLI options.
* [Change] Improved the performance of the row duplication action in DataManipulationForm.
* [Change] Improved the performance of "Move to schema" operation.
* [Change] Changed the behaviour of select and fade buttons in ObjectFinderWidget in such way to enable the user to select/fade the objects in the listing (or not included in the results).
* [Fix] Fixed the tab behavior on comment box in all editing forms of database objects.
* [Fix] Fixed the catalog query for user defined types.
* [Fix] Fixed the import of user defined types which names contains uppercase characters.
* [Fix] Fix window scaling on HiDPI/Retina screens.
* [Fix] Fixed a bug in ModelExportHelper that was failing to remane the database when the command appeared.
* [Fix] Fixed a bug in CollationWidget that was referencing the collation attributes LC_??? using the wrong constant.
* [Fix] Fixed the behaviour of the message box that warns about the need of validate the model prior to export, save or diff. Now rejecting the dialog (i.e. closing it) will be considered that the user wants to proceed with the pending operation even with an invalid model.
* [Fix] Fixed the import of comments for constraints,triggers, index and rules.
* [Fix] Fixed a bug in the aggregate import process.
* [Fix] Minor fix in DataManipulationForm to avoid the generation of a where clause when the filter is filled only with spaces.
* [Fix] Minor fix in the magnfier tool to use the same render hints as the canvas viewport.
* [Fix] Fixed a bug in the diff process that was trying to recreate the whole database when the "Force recreation" option was set.
* [Fix] Fixed a bug when showing the source of tables in DatabaseExplorerWidget when these objects have permissions assigned.
* [Fix] Fixed the saving process for large models by stopping the threads related to temp models saving while the model file is being written.
Develop: 0.9.2-alpha1 December 17, 2018
Changes since: v0.9.2-alpha Summary: finally, after four months, we have a new version out of the oven! This one has A LOT of changes that range from several code refactoring and performance improvements to the introduction of new interesting features like table partitioning and canvas layers.
First, let's talk about the changes and improvements. The objects drawing operations received a good set of patches making it a bit faster and less memory consuming. Putting these improvements in numbers, we have reduced in ~40% the internal size of a database model which means less objects to keep in memory as well to be drawn giving a good performance gain. You can see more details here: https://bit.ly/2Q3XMT5
The overall performance of the reverse engineering was improved which, in consequence, have enhanced the diff process performance as well. The diff process received some fixes and changes and now it is generating less false-positive changes.
In the new features side, we added scene layers which goals is to introduce a new level of visual segmentation of graphical objects. Another new feature created is the support to view columns that are deduced from the relationships between these objects and the tables.
Still in the design view in order to be more close to PostgreSQL 10+ new features pgModeler is now capable of handling declarative table partitioning (this includes code generation, reverse engineering and models comparison). Also, tables and views can have their attributes paginated or even collapsed to minimize the area occupied by these objects making big objects easier to visualize.
Now, about the bug fixes, several crashes were eliminated making the tool more stable for different usages, the reverse engineering received some patches so it can import correctly user-defined type in form of arrays and many others
Finally, some of the key changes of this release are listed below. For the complete list of changes, fixes and new feautures, please, read the CHANGELOG.md.
* [New] Added support to scene layers.
* [New] Added support to view's columns importing in DatabaseImportHelper.
* [New] Added the ability to load view columns from database model file in DatabaseModel::createView.
* [New] Added a tab "Columns" in ReferenceWidget where the user will be able to insert columns to be used as view columns.
* [New] Added support to pagination of tables and views columns pagination.
* [New] Added a fix step on CLI to remove the deprecated attribute hide-ext-attribs from tables and views xml code.
* [New] Added a configuration option to control attributes per pages in tables and views.
* [New] Added support to save collapsing states and current attributes pages to the database model file.
* [New] Added support to OLD/NEW tables aliases on triggers.
* [New] Added support for partition attaching/detaching detection in diff process.
* [New] Added support to importing partitioned/partition tables on DatabaseImportHelper.
* [New] Added support to resize grid cells to fit contents on ObjectsTableWidget.
* [New] Added support to hide columns on data manipulation dialog.
* [Change] Minor fixes in OperationList in order to force views to be updated correctly when operating over a table which is referenced by those objects.
* [Change] Minor adjustments on SchemaView and BaseTableView (and its children classes) to update the geometry when they switch from invisble to visible state.
* [Change] Improved the update of views when referenced columns and tables change their structure.
* [Change] Improved database model loading times by avoiding the rendering of tables while the children objects (indexes, trigger, rules, etc) are being added.
* [Change] The zoom in/out level is now sensible on how much the user rolls the mouse wheel.
* [Change] Code refactoring done in order to make it more close to C++14 in order to take advantage of new features introduced by that standard.
* [Change] Improved the diff process in such way to avoid generating unnecessary/noise commands related to changing types of columns to integer and setting nextval() call as default value.
* [Change] Move the FK settings, copy options and name patterns group boxes to a dedicated tab on RelationshipWidget.
* [Change] Improved the models destruction when closing the application.
* [Change] Improved the Index/Exclude/ParitionKey elements handling by creating a generic form/grid that handles these kinds of objects (ElementsTableWidget).
* [Change] Modified the RelationshipWidget in order to handle partitioning relationships.
* [Change] Modified RelationshipConfigWidget in order to write name partterns for partitioning relationships.
* [Change] Improved the reverse engineering performance by avoiding update relationships as they are being imported.
* [Change] Improved the object duplication feature in ModelWidget.
* [Change] When the model is loaded it is copied to the temporary models storage as a first version of the temporary dbm file.
* [Change] pgModeler will now use the official docs url in the help buttons.
* [Fix] Fixed a crash while renaming view's children objects.
* [Fix] Fixed the rendering of views which contain only a single reference that is the whole object's defintion.
* [Fix] Fixed the column name deduction for recursive views.
* [Fix] Fixed a bug that was causing crashes while configure new constraints on tables.
* [Fix] Fixed a regression in schema's rectangle selection.
* [Fix] Fixed an artifact when user switched on and off the compact view.
* [Fix] Fixed a bug in DatabaseModel::destroyObjects that could lead to segfault when the destroyed model had permissions on it.
* [Fix] Fixed a bug when importing columns which data types is some user defined type in form of array, e.g., custom_type.
* [Fix] Fixed a bug that was causing special primary key configured on a relationship to make the original primary key of the table to disappear after disconnect the relationship. Now pgModeler stores in memory the original PK prior the connection of relationship and creation of the special PK. When disconnected the relationship, the original primary key is restored on its parent table.
* [Fix] Fixed the class Relationship to reuse compatible columns when handling partitioning relationships.
* [Fix] Fixed the diff process in such way to create new columns with their respective COMMENT ON statement when present.
* [Fix] Fixed the detection of comment changes for columns on diff process.
* [Fix] Making pgModeler honor the columns arrangement in primary keys.
* [Fix] Fixed a bug that was causing FK relationship deletion to crash the application sometimes.
* [Fix] Some fixes were done in the ModelOverviewWidget in order to support large models without exceed the screen size when configuring the size of the overall widget.
Purchase an access key and support this project. Pay using PayPal™ and enjoy ready-to-use packages.
Get the binary packages by using an access key previously purchased.
If you want to compile pgModeler for 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 and unstable features are placed and tested.
You can retrieve the source using the git command by running the following: