The following tips and tricks may be useful to quickly become a Hackolade power user!
TIP: you may create extra space on your desktop by sliding the Object Browser or Properties panes with this control appearing between the panes. You may also toggle the appearance of these panes in the View menu.
TIP: to go back to the Welcome Page, simply choose View > Welcome Page. You may close the page, with the Close button on the lower right.
TIP: in any of the Comments dialogs, you may press the timestamp button to log data and time for your entries.
2. Object Browser
TIP: it is very convenient to use the search for any string of text to locate one or multiple objects in the model
TIP: from the Object Browser, simply click on an attribute, and the central pane will switch to its location in the hierarchical tree view, with all the details in the Properties Pane.
TIP: you may add attributes from the Object Browser with a right-click to display a contextual submenu.
TIP: you may automatically resize an entity shape in the Entity Relationship Diagram view by clicking the double-sided arrow icon at the top right corner of the shape
TIP: you may change the color of a shape title and frame by choosing from a palette that you can access by clicking the eye-dropper icon just to the left of the auto-resize icon.
TIP: if you want to get the maximum level of zoom possible while showing all shapes in your diagram, simply click on the double-sided arrow icon in the application toolbar.
TIP: after you've created shapes and relationships in the ER diagram, you may want to let Hackolade perform a basic distribution of the shapes according to an orthogonal formula, by choosing this grid-like icon in the toolbar..
TIP: to select multiple shapes, keep the Ctrl/Cmd key pressed. Then you can move, align, distribute, etc...
TIP: when you select 2 or more shapes, these shape alignment toolbar icons become active:
You may also do a right-click and access the same functions through the contextual menu.
TIP: when you select 3 or more shapes in line, you may distribute them evenly with these toolbar control icons:
TIP: create a relationship with drag-and-drop: simply grab a field from one collection with your mouse, and drop it on a type-compatible field in another collection (type-compatible fields in other collections are highlighted as long as the mouse button is pressed.) Be careful that the application considers the source as the child in the foreign key relationship, and the destination is the parent. After the relationship is created, you may change the relationship type (foreign key or foreign master) and the cardinality in the Properties Pane.
TIP: with denormalization, an ERD can quickly become very busy with all the foreign master lines displayed. You may toggle these lines on or off with this toolbar button .
4. Hierarchical tree view of collections/tables
TIP: you may change the order of the fields/attributes with these control icons:
TIP: you may toggle more or less details in the view with this toolbar control:
TIP: you may copy attributes by using the copy/paste function. Of course you can only paste attributes to complex types (sub-documents/maps or arrays/lists.)
TIP: when you enter data in the Sample field of the Properties Pane, Hackolade dynamically generates a sample JSON Data document in the JSON Preview lower tab.
5. JSON Preview
TIP: there are 3 types of validations being performed in this double-pane view: JSON Schema errors, JSON Data errors, sample document errors. You may click on each title's button to view the individual errors, or ALL to see a consolidate view.
TIP: changes being performed directly in this view can only be saved if they are properly validated. A button is provided to that effect.
TIP: DynamoDB only: the sample document in JSON data is displayed by default as plain JSON. It can also be displayed as 'DynamoDB JSON.
TIP: if you encounter issues during the Reverse-Engineering process, there is a log file located on your drive at C:\Users\%userprofile%\AppData\Roaming\HackoladeLogs If you send this file to email@example.com, we'll be have more information to investigate.
TIP: in MongoDB reverse-engineering, if you have instances with a very large number of databases, you may wish to declare a particular database directly in the connection string by appending the address with: /<name of the database you wish to access directly>, for example: localhost/NBA
TIP: if you get an error "not master and slaveOk=false" when connecting to a MongoDB instance, on a secondary member (for example, a replica set connection using a read preference of secondary or secondaryPreferred), you first need to run rs.slaveOk() to be able to freely run Hackolade's reverse-engineering. This is because, by default, MongoDB does not permit read operations from non-master (i.e., slave or secondary) instances.
In MongoDB, reads to a primary have strict consistency, meaning that the data it provides reflects the latest writes at all times. Reads from secondaries in MongoDB have eventual consistency, meaning that changes to the system can propagate gradually and readable members are not required to reflect the latest writes at all times.
By calling rs.slaveOk() you are indicating to the system that you acknowledge that reads will be eventually consistent and wish to be able to run reverse-engineering from the secondary anyway.