Data Modeler CompanionData Modeler Companion brings database diagramming, Oracle Database Projects, and Oracle SQL Developer Data Modeler workflows into Visual Studio Code. Create and edit diagrams from live databases and supported files, organize Oracle objects into projects, and continue working with SDDM logical and relational designs without leaving VS Code. Data Modeler Companion views
Contents
Get started
Database Projects and SQL Developer connections navigation require Oracle SQL Developer for VS Code VS Code extension to be installed. These workflows use connections configured in SQL Developer for VS Code. For additional details and examples, visit the Data Modeler Companion public repository. ConnectionsConnections to Oracle Database and MSSQL Server can be created - oracledb and mssql drivers are used for these connections. Each connection type has its own view where connection can be created and diagramming related objects to be presented. MS SQL ServerMS SQL Server connection dialog
If SQL Server (mssql) VS Code extension is installed then connection groups and profiles are automatically imported. MSSQL Connections Details on MSSQL Extension Connections and related Show Create Script on connection tree and diagrams. OracleOracledb nodejs connection dialog
If SQL Developer extension is installed then connections defined in SQL Developer automatically appear/disappear in DMC SQL Developer Connections view and Database Projects view. Schemas filteringFilters for visible schemas can be defined for connections in Oracledb and SQL Developer Connections views. For MSSQL Server connections filters are defined at database level - it's possible to be defined at connection if default database is set on connection, then filter is for that database. Filtering of schemas in Oracledb connection
Also color can be set on connections in SQL Developer Connections view. Connections in Database Projects view inherit schema filter and connection color from connections in DMC SQL Developer Connections view. Example for filtered schemas in Add Objects dialog
DiagrammingSources for DMC diagramsCreate interactive database diagrams in several ways:
Objects supported on diagrams for Oracle Database sources include tables, materialized views, views, duality views, and Label Property Graphs. Example diagram showing tables from Oracle Database MDSYS schema
MSSQL Server sources include tables, views, node tables, edge tables, and graph relationships.
Quick overviewUse an Oracle Database or Microsoft SQL Server connection tree to Create Diagram for connection, schema,database (SQL Server), object folder, or individual object. Or create empty diagram and add objects using Add Objects Dialog or use connection tree to add schema, objects folder or selection of objects with or without their dependencies. Add to Diagram With Neighbors functionality is available on individual object nodes in the Oracledb, SQL Developer, and MSSQL connection trees, including compatible node multi-selections. It reveals the matching open diagram and shows neighbor options over the canvas: All, Parent, or Child direction, a Number of zones, or All Zones. The starting objects come from the tree, not the diagram selection. On the canvas you can move and resize objects, edit link routes, change labels location and size for foreign keys and edges, add notes, control visible details and colors, apply layouts, easy navigate with minimap or Find Object drawer.
Based on extension setting Tool-tips are used to show information not directly expressed on diagram - columns in PK, UK and FK constraints and indexes, comments for tables, views, mviews and columns, objects used in definition of views and mviews, FK name, source, target object and delete rule on FK and implied FK links, labels their properties and backing database object on graph nodes and edges. Find Object drawer allow to filter objects and sort them on name, incoming or outgoing foreign keys thus allowing easy to spot starting point for diagram optimization. See Diagram Optimisation for details. Objects in Find Object drawer sorted by Incoming Foreign Keys
Colors for object types can be defined at 3 levels - extension settings, set at diagram level or on selection of objects. It's not possible to select more than one link - Edge Colors dialog can be used on graph diagrams to set color for single edge or common color for selection of edges.
Tables in Oracle Database with Node and Edge roles
Property graph diagramsOracle Label Property Graphs and SQL Server graph tables receive dedicated graph presentations in addition to standard relational table visualization. Graph displays expose vertices/nodes, edges, labels, properties, comments, and the underlying database objects. Explicit Oracle graph import resolves local private/PUBLIC synonym chains to actual backing tables, views, or materialized views (Graph definition on synonyms, views and materialized views are supported on Oracle AI Database 23.26.3+). Tooltips show reference to the original object used and synonym path in case synonym is used in node or edge definition. Graph-defined endpoint mappings provide implied FKs without requiring physical PK/FK constraints. See Property graph diagrams for details. Two displays are created when representing a graph on diagram - one named compact without edge properties visible and another one having edge properties presented. Graph relationships are presented as Implied Foreign Key (IFK) links on MSSQL Server graph tables diagram. Single IFK link between edge table and node table is used to represent all relationships between them (see tool-tip on link in the example below): Graph tables for Fish Graph example
Edge labels and properties get the same color set for the edge. MSSQL Server Graph with Edge Colors dialog visible
For edge properties presentation - it's possible to reorder properties and make some of them hidden. If there are hidden properties then triangle appears on top right corner. Oracle Label Property Graph example
Oracle vertex/node with more than one label have a + character added at the end of title. Label appearing as node title can be selected for such nodes: Oracle Vertex with more than one label setting
Oracle Graph defined on synonyms to tables Read the Diagramming guide for creation routes, dependency workflows, graph displays, and examples. MSSQL Server related Show Create Script and Show DefinitionShow Create ScriptSQL Server extension functionality is used to get the script thus it is available only on table and view nodes in MSSQL extension connections and on diagrams created using such connection - not available on DMC MSSQL Server connections. Also works on selection of objects on connection tree and diagram. Show Create Script(All Objects) is also available On diagram. Show DefinitionScripts generated with Show Create Script functionality are too verbose, include many details and are difficult to read. Idea behind Show Definition is to provide more simplified view on definition of tables and views. By default indexes, check constraints and comments are not included in generated script, quoting and GO statement are suppressed. That can be changed in DMC extension settings.
Functionality is available on table and view nodes in all SQL Server connections and on diagrams created using such connection. Also works on selection of objects on connection tree and diagram. Show Definition(All Objects) is also available On diagram. Database ProjectsOverviewDatabase Projects extend Oracle SQL Developer for VS Code with a project-oriented view of Oracle Database objects. A project or subproject can span schemas and object types, store a focused object scope, and own diagrams that document that scope. Use object filters and dependency expansion in Edit project dialog to assemble a project. For table, view and materialized view ALL_CONSTRAINTS view is used to get parent and child dependencies for one hop. For view, materialized view and PL/SQL objects ALL_DEPENDENCIES view is used to get used object (again for one hop). Object types supported in Projects:
After creating project objects tree you can:
Read the Database Projects guide for project organization, SQLcl generation, dependency processing, and bundle transfer.
SQL Server and Mermaid diagrams in projectAdd Current Diagram can store SQL Server and Mermaid-origin DMCD snapshots in an Oracle-backed project or subproject. Those diagrams are complementary for projects spanning different database types. Those diagrams are stored as they are only adding project information for them. Opening SQL Server diagram from projects keeps its relation to source connection and SQL Server database and has full functioning SQL Server related functionality.
Schema remapping is not applied when import non Oracle diagrams. Report for objects in projectSimple .html or .md report can be generated for objects and diagrams included in project and subprojects. Database comments for tables, views, duality views, and materialized views are included by default; disable Modeling and SDDM DesignsImport Oracle SQL Developer Data Modeler (SDDM) designs into the Modeling view. Data Modeler Companion transfers the supported logical and relational artifacts and preserves supported diagram positions, routes, arcs, colors, notes, and presentation.
Modeling support includes:
Logical model diagram with diagram preview in model tree
Corresponding relational model diagram with rich tool-tip for domain definition and design level domains in design tree
Color for object types is resolved in way similar to what is in SDDM - it's based on definition of source dl_settings.xml imported into dl_settings.json located in target DMC design directory. Two paths to define a color at design level:
Those colors can be changed at diagram level or specific color can be set at object or graphical synonym on diagram;
dl_settings.json is the place to set color for DMC design object types similar to extension settings for .dmcd diagrams Report templates and Objects report configurations created with SDDM can be used in report generation as starting point and changed what really go into report using filtering on objects and diagrams. HTML and PDF reports are generated with Table of Content (TOC) to navigate directly to content of object, navigational foreign key names (links) on content part and on diagram, navigation from content to diagram where objects is used and back to content part from diagram. HTML reports retain rich tool-tip information provided on DMC diagrams - not supported on PDF reports.
Table details showing identity column and Default on Null(Id and DoN in M/Mandatory column)
More table details in PDF report including dynamic properties and UDP at table level
Report Example for overview diagram (embedding a diagram into another diagram from the same or other models)
Diagram in HTML report with rich tool-tip support
PDF report for entities in Logical model PDF report - Second page for Entity Movie PDF report - Logical model diagram with nested implementation diagram Read the report guide for more info on report generation and custom CSS tuning. DB Projects Usage LogFor Oracle Database related objects DMC can send a request to SQL Developer extension to show object details.
The usage log records distinct objects successfully opened through SQL Developer from Database Projects, the SQL Developer Connections tree, the Modeling tree, or diagrams. It keeps the most recently used first, and persists locally across workspaces in the current VS Code profile. For logical model objects, it records the mapped database object. Its default limit is 150 objects, controlled by Database Projects: Usage Log: Max Entries. Connection cells reuse DMC connection colors. DB Projects Usage Log window can be made visible using Ctrl+Shift+P and command Show DMC DB Projects Usage Log. File formats
LoggingThe Data Modeler Companion output channel uses Documentation and supportThe public repository contains detailed workflows examples, and release media. Architecture and roadmap pages are labeled separately from the current feature guides. Third-party noticesTHIRD-PARTY-NOTICES.txt is generated conservatively from the installed production dependency graph and includes notices for direct and transitive dependencies that may contribute to functionality. |


























