Published: 10.5.2022, Updated 12.8.2022
During the development of this release, we have focused on improvements related to data modeling for all databases. We have addressed the use of naming conventions for PostgreSQL and fixed reported bugs. We also addressed internal improvements. This resulted in smaller installation package sizes and increased application stability.
1. Naming conventions for PostgreSQL
When modeling the database structure for Postgres, we use a number of basic object names, such as table1, table2. Previously, we also named new relationships with names like table1_table2. This general naming convention is sufficient in many cases, however, it was necessary to change these names manually. For example, when renaming table1 to customer. In this example, it was a good idea to change e.g. the name of the relationship, the name of the index, the alternative key, etc. Now it is possible to synchronize these names automatically.
Basic object names

After renaming table1 to user
- New name (1)
- Primary key name (2)
- Alternate key name (3)
- Index name (4)

Custom names
Also in this version, you have the option to keep custom object names. Therefore, if you override a name (1) that does not match the naming conventions set, it will be used and not overridden. If you decide to use automatic synchronization later, just click on the Reset name icon (2).

Settings
In the project settings (1 and 2), you can enable Naming conventions (3), choose whether or not to use synchronization for the PostgreSQL project and whether or not to include object names in the resulting SQL script (4).

Generated script
Example of generated script for PostgreSQL

2. Data modeling – quickly switch from column selection to table properties
If you select a column/field directly in the diagram, the right panel will show the detail of that column. In case you want to change the properties of the parent object, you can just click on the parent object name hyperlink to display the properties of the table/collection.
Column selection
A new info section is displayed in the Column details panel and the hyperlink to the parent object is available.

Table properties
No column is selected and the right side panel shows all the table properties.

3. Option to add columns directly to child objects
If you use a nested object in diagrams, you can now select a column in the parent object that has another object as its data type and directly edit the columns of this nested object. Just click on the Children tab and then add, remove or edit columns/fields.


4. List of relationships, references and implements
We have modified the display of the list of relationships, references and, in the case of GraphQL projects, the list of implements. Now the relationship name is listed and only the reference to the parent or child object is shown. (Previously, the reference to the self object was also shown unnecessarily). This change is especially noticeable in larger projects.

5. Comments in generated custom code
Some of you are using custom code for objects, instead of SQL script generation. Moon Modeler used to add the object name as a comment (as supported by the database) to the generated scripts. However, in the case of a custom definition in e.g. YAML format, these comments were unwanted. Therefore, object names in the form of comments are no longer generated.

6. Relationship and line colors in the generated HTML report
We have modified the way HTML reports are generated in a Theme other than the selected Theme. If you have the theme set to light and generate a Dark report, the relationship colors will change accordingly.
7. Other useful improvements and bug fixes
- If the order of the columns in the primary key is changed, the order of the foreign keys in the child table will be adjusted accordingly.
- The scroll position remains in the same place after inserting a copy of the objects, so there is no position shift in the project.
- Fixed bug when changing primary key to alternate key.
- Fixed an error that could occur when deleting an alternate key.
- Modification of reverse engineering for MongoDB. If the parent collection is not found, a message is displayed.
- Correction in reverse engineering for PostgreSQL. If no key is found, a message is shown.
- Fix in loading MariaDB and MySQL structures (aggregations).
- New notification in case you try to load a SQLite file that does not contain a SQLite database.
- Fix for incorrect rendering of anchor points in the generated HTML report.
- Fixed object dimensions when adding tables to a new sub-diagram.
- Fix Lock dimensions functionality for Note objects.
- Other minor improvements and bug fixes.
Version 4.6.2
- Improved reverse engineering from MongoDB (import from schema definitions)
- Single quotes used in Descriptions are escaped in MongoDB projects
Version 4.6.3
- Comments for PostgreSQL table columns and indexes are generated correctly
- Bug fix for PostgreSQL and MariaDB projects, sections Before script and After script.
Version 4.6.4
- Bug fix for Script preview.
Version 4.6.5
- Improved import from GraphQL
- Bug fix for column selection in left side panel.
Version 4.6.6
- Improved connection properties for MongoDB / DocumentDB. Options Direct connection, TLS Allow invalid hostnames and Retry writes added to the user interface. Now you can setup connection to AWS DocumentDB more comfortably.
- Bug fix for adding new objects to existing diagrams.
- Bug fix for copying tables or collections.
Have a suggestion?
If you have a suggestion, an idea for improvement, or if you find a bug, feel free to email us at info@datensen.com.
Thanks!