I'm happy to announce another release of our beloved database modeling tool! This time there are no fancy new features, but some important improvements in preparation for new things that I'm planning during this new development cycle. Anyway, below, we have described some key changes of pgModeler 1.2.0-alpha.
-
Improved schema microlanguage: The pgModeler's code templating language (aka schema microlanguage) was improved in such a way as to support escaped character sequences that refer to metacharacter tokens. The supported escaped characters (and their related metacharacters) are
\s
($sp
),\t
($tb
),\n
($br
),\[
($ob
),\]
($cb
),\{
($oc
),\}
($cc
),\$
($ds
),\#
($hs
),\%
($ps
),\@
($at
),\&
($am
),\\
($bs
) and\*
($ds
). The schema language now also supports the @include statements that inject portions of code stored in other files into the currently parsed schema file. This is pretty handy for avoiding code duplication and facilitating the maintenance of schema files. -
Markdown data dictionaries: pgModeler now supports the generation of data dictionaries in Markdown (.md) format in the model export form. This is useful to integrate data dictionaries generated by the tool with other documentation tools that use that file format to keep documentation pages. The
pgmodeler-cli
tool also received support for Markdown dictionaries through the option--markdown
.
-
Improved older configs copy: From now on, in the first run, pgModeler will try to copy the configuration files from a previous major version immediately before the current one. For example, running 1.2 the files to be copied will be from 1.1 and not from 0.9.x anymore. This will increase the chances of reusing settings from previous versions diminishing the annoying situation of reconfiguring the tool every time it is updated.
-
Improved code generation: The DDL generation for objects that support
CREATE OR REPLACE
was updated to include theOR REPLACE
portion, this is the case for functions, procedures, views, and others. The diff feature received the option "Replace modified objects" which causes objects to be replaced viaCREATE OR REPLACE
instead of being dropped and created again. -
**Miscellaneous: **
- The restriction of specifying
OUT
parameters in procedures was removed in compliance with newer PostgreSQL versions. - Added support for the options
check_option
,security_invoker
, andsecurity_barrier
in views. - The syntax highlighting feature was completely refactored being now more precise and the configuration files way more simple.
- The support for
Forced object recreate
in the diff feature was dropped. The option was confusing and was generating a diff code that was similar to generating the entire SQL of a model and re-export it to a server. So, it was considered not so useful anymore. - Minor fix in
pgmodeler-cli
in such a way as to warn about invalid changelog entries avoiding aborting the entire model fix process. - Fixed a bug in the reverse engineering feature that was not retrieving comments of sequences causing false positives to be generated in the diff process.
- The restriction of specifying
Let's support pgModeler?
If you like the work being done to create a quality database design tool, please become our sponsor on GitHub. Any open-source project needs financial support to keep the development alive, and this is not different with pgModeler. Go ahead, be a supporter in one of the offered sponsor tiers, and receive rewards for being a friend of an open-source project! :D
Finally, for detailed information on the changes in this version, please, refer to the CHANGELOG.md file. As always, please, don't forget to leave your thoughts in the comments section below. If you need to report any bug or want to request new features, please, register a ticket on GitHub! News and updates about the project can be read on the project's social networks (X, Mastodon, Bluesky) or telegram channel @pgmodeler.
That's it! I'll get back to work on pgModeler 1.2.0-alpha1 in mid-August, until then, I'll be on vacation and taking care of my health too!
Until next time! ;)
Add new comment