Before I start to detail the changes in this release I would like to thank all those that somehow are continously contributing to the pgModeler's growing, be through suggestions or criticisms, donations or even by paying some money to get precompiled binaries. This project is made for you and by you, thank you so much for everything! Now, let's go to what matters... the changes.
Support to indexes on views
One missing feature that is being introduced in this release is the support to indexes on materialized views. This behavior is replicated to all areas of expertise of the software: design, code generation, reverse engineering, model/database comparison and database management. You can add an index to a view in the usual way like you do to triggers or rules (yes, views support these objects too!) by opening the view's editing dialog and look for the tab Indexes. You can also use the new object overlay by hitting N in the canvas area (see image below) to create an index on the view. This new enhancement is a new step into the full support to all PostgreSQL objects and main features.
Enhanced source code editing
We are aware that the source code editing is not the most pleasant task in pgModeler so in order to workaround this deficiency and instead of reinventing the wheel by creating an advanced source code editor we have added the ability to load contents of external source files and assigning them to objects which demands the usage of a SQL source, for instance, functions, views or custom SQL code attached to many objects. This feature opens the possibility to use that super-duper editor like notepad (intentional sarcastic joke!) by writting your code there and then put it into the handled object. But how it works? Let's look to the following image.
The area highlighted in the red rectangle shows the buttons available in any input field that is configured to accept source code via external editor. The action Load file enables the user to simply load the contents of an external text file into the current field, nothing more. Now, the Edit source is our guy! This action will do some magic trick and write the contents of the field in a temporary file and open it in the configured external editor. Inside the loaded editor lies the contents of the source field focused in pgmodeler that was saved to the file. The user can now edit the file not forgetting to save it. Once the editor is closed pgModeler detects the changes on the temporary file placing its new content in the focused field. Simple as that!
In the General settings you can define which editor will open when requested as well its arguments (specific for any chosen editor). It's important to warn the user to take care of the selected application assigned as source editor. Since pgModeler can't guess if the selected executable is really an editor or a command that can wipe out all data from the computer, the user always need to double check what application he/she is using as the prefered source code editor.
Toggling extended attributes
Another cool improvement done in the design view is the ability of toggling the extended attributes area of tables and views on the fly. We call extended attributes those objects that are displayed at the bottom of tables and views which can be indexes, rules, triggers and constraints. Many users think that the extended attributes display is an useful feature for quick access purposes but others don't think the same and sometimes think that they can be annoying or take too much space in the canvas area. So we decided to provide a way, other than via general settings, to hide those attributes and persist their statuses (shown/hidden) in the database model file so the current state can be restored in the next model loading. The image below shows an example of this enhancement.
Miscellaneous fixes and changes
Talking about persisting statuses, we now added the ability to persist in the model file the fade out state (introduced in 0.9.0-alpha1) of the objects in the design view. Still in the database design area, the user can now control the zoom when navigating through the model via overview widget, triggered by hitting F10. To do that, just use the mouse wheel while the cursor is within the overview widget.
In the data manipulation dialog we needed to change the default characters used to escape values due to some problems with JSON data which use the characters {}
in the document structure. In order to avoid repeatedly escape the characters {
or }
anytime the user needs to edit JSON data, the default characters used to express special values or function call is now //
. So, for instance, if you want to assign a function call to a certain column you should write /now()/
instead of {now()}
.
The SQL tool received small improvements in such way that now it is possible to save the commands in the input field to an specific file and keep saving the changes on that file or save them in another file if need (save as) as denoted in the following image. The highlighted portion at the right of the image indicates the read-only field that indicates the SQL file currently being handled.
Finally, there were other minor features, fixes and improvements just to make pgModeler even better. The complete list of changes is available in the file CHANGELOG.md.
That's it! I hope that you enjoy this new release and don't forget to submit questions, suggestions or criticisms here in the comments section or at Github issues page.
Add new comment