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 purchase. Since this is an independent project by purchasing any binary package you'll help to keep its development alive and at full speed!
Current: 0.8.2 June 06, 2016
Changes since: v0.8.2-beta1 Summary: after two months of work we bring to you the pgModeler 0.8.2! With this release we officially concluded the series 0.8.x. This is by far the most important series in project's lifetime since the introduction of reverse engineering feature and port to Qt 5. This one brings additional improvements that definitively turned pgModeler into a solid application.
Several portions of the software were changed or fixed in this final release as the following:
* SQL Tool: the command history now is part of the output widget having a better appearance by registering commands and their respective affected or retrieved rows and, for broken commands, the error raised in the moment of their execution. Still in SQL tool, the data manipulation dialog was improved enabling the user to duplicate rows making the data handling even more quick.
* Connection timeouts: in previous versions in certain cases when the connection remained open for too long or the server unexpectedly closed it the application could crash. Now, pgModeler implements an internal connection timeout avoiding execution of SQL commands using an invalid connection, instead, an error is raised and the operation is aborted. This will greatly diminish these annoying failures.
* Initial data for tables: in previous versions the user was capable to create custom INSERT commands in order to populate tables after their creation. Now, pgModeler implements a dedicated dialog for this purpose. It's an special grid, very similar to the data manipulation form in SQL tool, that enables data input. The magic here is that the data inserted in the grid is saved as a CSV-like buffer in the table and translated to INSERT commands when the table code is generated and exported to the server or file. For now, the form is quite simple and surely will be improved in future releases.
* Default connections: in response to some users' requests pgModeler now counts with default connections for each operation that involves export, import, diff and validation. In the moment a connection is being managed the user can check in which operation that connection will be used by default. This is useful when you have multiple databases for different phases of the project like in software factories (e.g. test, homolog, production and etc).
* Transactional commands: in previous versions, due to implementation details, pgModeler was not capable of run transactional commands like START TRANSTION, COMMIT and ROLLBACK. Now, after some tweaks in the core, the user can freely create a transaction session, play around with the tables and commit
or roll back changes.
* SVG support in export: this long awaited feature now lives in pgModeler. Models can be exported to SVG format opening the possibility to import them in another general purpose modeling tools or even serving as an additional option for documentation.
* Miscelaneous: the metadata handling form was improved and simplified the process of extract and apply objects' metadata in the models. Source code in SQL tool's command input field now can have the case changed or indented by calling the context menu using right-click or specific shortcuts. The annoying error related to new format of connections.conf is now solved automatically when the application detects and older format being used. Several componets in the UI were resized improving usability, missing shortcuts added and many others.
Finally, in order to give an ideia on how much pgModeler changed since 0.8.1, we have 273 changelog entries divided in: 63 new features, 97 changes/improvements, 113 bug fixes. Obviously, not all changes will be noticeable since they occurred in the core, but what is more important is that if you're running 0.8.1 it is strongly recommended that you upgrade to 0.8.2 to take advantage of all new features and fixes. Also, to get full details about all modifications in the software since 0.8.1 take a look in CHANGELOG.md.
Develop: 0.9.0-beta2 July 01, 2017
Changes since: v0.9.0-beta1 Summary: this release was meant to be the final 0.9.0 but due to the several changes, bug fixes and new features introduced it was more prudent to bring it as the second beta instead of the stable version so we could gather as many as possible feedback and fix any remaining issue in order to finally launch the pgModeler 0.9.0 stable.
The first change presented by this version is that pgModeler will not fail or refuse to connect to a PostgreSQL server if the version of the latter is not supported yet. For example, we are about to receive PostgreSQL 10 but pgModeler supports only 9.0 to 9.6, so if you try to connect to a newer server pgModeler will connect to it but falling back to 9.6 until it receives the needed patches to be able generate code specifically to PostgreSQL 10. There is no magic here, pgModeler only relies in the backward compatibility of the server which is able to run code of the 9.x series without problems. If you plan to use this feature in PostgreSQL 8.x there are bad news for you: it'll not work and we really recommend you to stop using 8.x series.
The database base design was greatly improved by introducing: the objects' auto arrangement feature, the magnifier tool, the advanced object selection, the canvas info widget, the bulk relationships points removal and finally the generic SQL object. The auto arrangement feature consists in a process that will arrange tables and views in a "hierarchical" way by walking through the relationships that connect these objects placing them vertically aligned with their counterpart (parent). Tables and views without any link as well textboxes are placed at the bottom of the rearranged model.
The magnifier tool is the ability to show a portion of the zoomed out model where the mouse cursor is in the normal scaling so the user can identify which object is currently focused. Better than detail the feature here is to give it a try so you can understand how it works: in a zoomed out model (zoom factor < 100%) hold Ctrl + Alt and a preview box will appear at the bottom-right corner of the canvas; move the mouse and see the preview being updated. In this mode you can select the focused object or even activate the context menu for it.
The object selection was improved in such way that the user is able to select objects by their kind (tables, view, schemas, relationships, textboxes or all kinds) via "Select All" action in canvas' area context menu. Through this new feature, relationships can have all their custom points removed at once when all objects of this kind are selected. All these improvements in the design view led to the creation of the canvas info widget which goal is to help identify object(s) when working in small zoom factor. Currently the widget displays the zoom factor, the cursor position in the canvas area, the selected object(s) postion and their bounding rect at the bottom of the main window. This widget is quite simple but may receive improvements in future release.
We have introduced the Generic SQL objects which is a way to use custom SQL code freely without attach them to other objects via Custom SQL dialog. In short, Generic SQL objects are plain text objects that store user defined code and the code held is then executed in the order that it was created. As any object in the model, Generic SQL objects can have their creation order modified in the Swap Ids dialog to fit the user's need. The user must take extreme caution with these objects since pgModeler will not do any sanity check or even detect if the code can harm the server when executed.
Finally, several fixes were done including a good amount of memory leaks that surely will improve the overall performance. Below some key changes for this release, please refer to the file CHANGELOG.md for the complete changes history:
* [New] Added an action to reset labels distance in BaseRelationship and ModelWidget.
* [New] Added a widget that shows some info about the canvas and the selected objects at the bottom of main window in design view.
* [New] Enabled the usage of snippets in other portions of the software like GenericSQLWidget, FunctionWidget, ViewWidget, CustomSQLWidget.
* [New] Added the ability to quickly jump to the tables related to a relationship.
* [New] Added support to select all objects in the canvas by type (table, view, textbox, schema, relationship).
* [New] Added support to bulk relationship points removal.
* [New] Added a magnifier tool so the user can visualize objects when the zoom is too small. This tool allows the user to click to select or activate the context menu over the objects.
* [New] Added support to generic sql objects that serve as an improved way to use custom SQL.
* [New] Added support to handle metadata related to generic sql objects.
* [New] Added the first object auto-arrange algorithm.
* [Change] pgModeler will now accept (connect) to a PostgreSQL server even if the version of the server is not supported falling back to the most recent supported.
* [Change] Improvements on import/diff/export performances by adjusting the way the output widget handles items height.
* [Change] Improved the ModelOverviewWidget to handle huge models better.
* [Change] Improved the objects swapping by adding an objects grid where user can interact with it in order to choose which objects to swap.
* [Fix] Several memory leaks removed in different portions of the application.
* [Fix] Minor fix in RelationshipView to show the line circles for n:n relationships.
* [Fix] Fixed a bug when zooming out using wheel that was causing duplicated zoom in a single wheel turn.
* [Fix] Minor fix in TableView and TableObjectView to present tables in a more compact fashion minimizing the space used in the canvas.
Purchase a binary package and support this project. Pick your platform, choose an expiration period, pay using PayPal™ and enjoy ready-to-use packages.
Get previously purchased binary packages by using an access key. If you bought packages in the old site you need to use the payment conversion tool.
If you are a package maintainer or just want to compile pgModeler for yourself you can freely get the source code from official repository.
NOTE: Currently, the user's guide is distributed only in US English.
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: