github nullptrlabs/pgmodeler v1.1.0-alpha1

latest releases: v2.0.0-alpha, v1.2.2, v1.2.1...
pre-release2 years ago

Changes since: v1.1.0-alpha

Attention: Some configuration files were changed in pgModeler 1.1.0-alpha1 causing a break in backward compatibility with pgModeler 1.0.x settings. This way, at the first start of the newer version, pgModeler will try to migrate the older settings to the newer ones automatically!

Here we are, after working for 4 months, bringing you the last alpha release of pgModeler 1.1.0. This version was mainly focused on improving performance on several parts of the tool. So I put a huge effort into refactoring lots of code to reach an amazing (almost unbelievable) result. Let's see below:

Improved model loading, objects' searching, and validation speeds: One of the most annoying things on pgModeler for me was the speed of the operations like objects' search, model validation, and, mainly, database model file loading. During the development of this version, I decided to face the challenge of improving these three operations, so I delved into the internals of the tool looking for the major bottlenecks. After selecting the problematic ones, I took the path of rewriting some mechanics instead of trying to fix them. The two main bottlenecks that degraded the speed of the mentioned operations were the objects' name validation/formatting as well as the retrieval of objects' dependencies and references. Those seemed simple operations that I could even imagine that they were making pgModeler struggle to handle big models. For the objects' name formatting and validation, I decided to create an internal name cache to avoid calling those procedures repeatedly. A simple solution that brought a surprisingly good result. For the objects' dependencies and reference handling, I completely ditched the methods written for that purpose and created something infinitely simpler. Instead of calling every time a procedure that runs countless loops and recursive calls, I just made the objects store internally which other objects are their references and dependencies. Those changes made models that were loading/validating in several minutes to be processed in a few seconds. I still have some other bottlenecks to solve, but those two already removed, gave pgModeler an amazing performance.

Several other improvements: General improvements were made all over the tool and some of them are described below.

  • Added support for inksaver color theme which uses only black and white colors for models that are used for printing.
  • Added support for using object comments as aliases in database import.
  • pgModeler now asks the user about closing SQL execution tabs that are not empty (with typed commands).
  • Add support for remembering decisions on the alerts regarding unsaved models/open SQL tabs.
  • Added an option in GeneralConfigWidget to reset the exit alert display status.
  • Added a basic form to inspect changelog XML code.
  • Added missing multirange types.
  • Improved the relationship point addition and selection via mouse clicks.
  • The "dot" grid mode is now the default in the appearance.conf file due to better drawing performance.
  • Improved the scene background (grid, delimiter, limits) drawing speed for big models.
  • Improving the objects' filtering in reverse engineering by introducing an "any" filter type.
  • Data manipulation form now shows a confirmation message before closing when items are pending save.

Bug fixes: Also, as part of the constant search for the overall tool's stability and reliability, almost twenty bugs were fixed, and below we highlight some key ones:

  • Minor fix in the object finder widget to avoid disconnecting a null selection which could lead to crashes.
  • Minor fix in the database model widget to hide the new object overlay when moving a selection of objects in the design area.
  • Minor fix in the object removal routine in a model widget that was not erasing an object in case it shared the same name of other objects in the same schema.
  • Minor fix in the object addition routine to validate the layer of the object being added. If one or more layers are invalid the object will be moved to the default layer 0.
  • Minor fix in pgmodeler-cli when extracting the objects' XML code during model file structure repair in order to restore correctly the layers name/count.
  • Fixed a bug in partial reverse engineering that was not correctly importing functions in some specific conditions.
  • Fixed a bug in partial reverse engineering that was not importing some objects' dependencies correctly.
  • Fixed a bug in the appearance configuration widget that was not updating the example model colors when changing the UI theme.
  • Fixed a crash when double-clicking the overview widget.
  • Fixed the data dictionary schema files for tables and views.
  • Fixed a bug in the database model that was causing FK relationships of a hidden layer to be displayed after loading the model.
  • Fixed a bug in the scene move action that was causing the grid to not be displayed after a panning/wheel move.

SQL session plugin: This version introduces the SQL session plugin, available in the paid version of the tool, which implements simple routines to save the current opened SQL command execution sessions in a specific configuration file which can be restored in the next pgModeler execution by clicking the action "Restore SQL session", close to the connections combo box, in the Manage view.

Finally, for more detailed information about this release's changelog, please, refer to the CHANGELOG.md file.

Don't miss a new pgmodeler release

NewReleases is sending notifications on new releases.