DBML Previewer

Transform your DBML files into beautiful, interactive database diagrams instantly.
Perfect for database architects, developers, and anyone working with database schemas. Turn text-based DBML into visual understanding with just one click.

What's New
v1.6.1 - Bug Fix Release
- Blank Preview Fix: Fixed the preview panel showing up empty in the installed extension (v1.6.0)
- Relationship Handles Fix: A column that is both the source of one relationship and the target of another now keeps both connection points
v1.6.0 - Optional Relationships Release
- Optional Relationship Syntax: DBML's
? relationship modifier (>?, ?>, <?, ?<) is now supported instead of failing to parse
- Multi-Schema Relationships Fix: Relationships between default-schema tables now render correctly in files that also use explicitly-named schemas
Key Features
Instant Visual Database Diagrams
- One-Click Preview - Transform DBML files into interactive diagrams instantly
- Real-Time Updates - See changes as you save your DBML files
- Drag & Drop Tables - Customize layout with automatic position saving
- Smart Table Notes - Clean popup tooltips for table documentation
Intelligent Relationship Mapping
- Visual Connections - See foreign key relationships at a glance
- Interactive Tooltips - Click relationships for detailed information
- Clickable Navigation - Click table names in tooltips to navigate instantly
- Column-Level Precision - Exact source and target column identification
- Cardinality Display - Clear 1:1, 1:_, _:* relationship indicators
Enterprise-Ready Schema Support
- Multi-Schema Files - Handle complex databases with multiple schemas
- Table Grouping - Visual organization with background containers
- Rich Column Details - Types, constraints, keys, and enum support
- Full DBML Specification - Complete support for all DBML features
Seamless VS Code Integration
- Flexible Theming - Choose VS Code theme inheritance or clean light theme
- Multiple Access Points - Command palette, context menu, keyboard shortcuts
- Side-by-Side Editing - Preview alongside your DBML file
- Quick Access -
Ctrl+Shift+D / Cmd+Shift+D keyboard shortcut
Professional Export Capabilities
- PNG Export - High-resolution raster images for documentation
- SVG Export - Scalable vector graphics for presentations
- Configurable Quality - Adjust image quality and resolution
- Background Control - Export with or without background color
Get Started in 30 Seconds
Quick Install
From VS Code:
# VS Code / Visual Studio Code
code --install-extension rizkykurniawan.dbml-previewer
From VSCodium/Open VSX:
# VSCodium or other Open VSX compatible editors
codium --install-extension rizkykurniawan.dbml-previewer
Or search "DBML Previewer" in your editor's Extensions panel (Ctrl+Shift+X)
Supported Editors:
Instant Usage
- Open any
.dbml file in VS Code
- Press
Ctrl+Shift+D (Windows/Linux) or Cmd+Shift+D (macOS)
- Done - Your database diagram appears instantly
Alternative Methods:
- Right-click file → "Preview DBML"
- Click preview button in editor title bar
- Command Palette → "DBML Previewer: Preview DBML"
Example DBML File
Create a .dbml file with this sample content to try the extension:
Project sample_project {
database_type: 'PostgreSQL'
Note: 'Sample e-commerce database schema'
}
Table users [headercolor: #27AE60] {
id integer [primary key, increment]
username varchar(50) [not null, unique]
email varchar(100) [not null, unique]
created_at timestamp [default: `now()`]
Note: 'User accounts table'
}
Table orders [headercolor: #3498DB] {
id integer [primary key, increment]
user_id integer [not null, ref: > users.id]
total decimal(10,2) [not null]
status varchar(20) [default: 'pending']
created_at timestamp [default: `now()`]
Note: 'Customer orders'
}
Table order_items {
order_id integer [ref: > orders.id]
product_id integer [not null]
quantity integer [not null]
price decimal(10,2) [not null]
indexes {
(order_id, product_id) [pk]
}
}
DBML Support
This extension supports the full DBML specification including:
- Tables with columns, types, and constraints
- Primary Keys and Foreign Keys with visual indicators
- Relationships (
>, <, -, <>) with proper cardinality display, including the optional ? modifier (e.g. >?, ?>)
- Unique Constraints and Not Null constraints
- Table Notes
- Indexes (simple and composite)
- Table Groups for schema organization
- Custom Colors for tables (
headercolor) and groups (color)
- CHECK Constraints - Table-level and column-level check constraint support
- Multi-schema database support
- Default Values and Auto-increment fields
Controls and Navigation
Diagram Controls
- Zoom: Mouse wheel or zoom controls in bottom-left
- Pan: Click and drag empty space to move around
- Fit View: Reset zoom to fit entire diagram
Table Interaction
- Drag Tables: Click and drag table headers to reposition
- Group Movement: Drag table groups to move all contained tables
- Relationship Details: Click relationship lines for detailed information
- Navigate via Tooltips: Click table names in relationship tooltips to jump to that table
Keyboard Shortcuts
Ctrl+Shift+D / Cmd+Shift+D: Open DBML preview
- Mouse wheel: Zoom in/out
- Space + drag: Pan diagram
- Escape: Close relationship tooltips
Configuration
The extension works out of the box with sensible defaults and includes the following configuration options:
Theme Configuration
diagram.inheritThemeStyle (boolean, default: false)
- Controls whether diagrams inherit VS Code theme styling
- When disabled, uses a clean light theme optimized for diagram readability
- Prevents issues with poorly designed VS Code themes
Cardinality Configuration
diagram.showCardinalityLabels (boolean, default: false)
- Show cardinality labels (0, 1, N) on relationship edges
0 = nullable one-side, 1 = non-nullable one-side, N = many-side
- Useful for quickly reading relationship multiplicities without opening tooltips
Edge Type Configuration
diagram.edgeType (string, default: "smoothstep")
- Customizes the visual style of relationship connections
- Available options:
"straight" - Direct straight lines between tables
"smoothstep" - Smooth step edges with rounded corners (recommended)
"bezier" - Curved bezier edges for organic appearance
Export Configuration
diagram.exportQuality (number, default: 0.95)
- Image quality for PNG exports (0.1 to 1.0)
- Higher values produce better quality but larger file sizes
- Recommended: 0.95 for high-quality exports
diagram.exportBackground (boolean, default: true)
- Include background in exported images
- When disabled, exported images have transparent background
- Useful for presentations and documentation
diagram.exportPadding (number, default: 20)
- Padding around the diagram in exported images (in pixels)
- Range: 0-100 pixels
- Provides visual breathing room around your diagram
diagram.bulkExport.outputFolder (string, default: "")
- Path to the folder where bulk-exported files will be saved
- Relative paths resolve from the workspace root
- Leave empty to save into a
dbml-exports subfolder inside the source folder
- Open VS Code Settings (
Ctrl+, / Cmd+,)
- Search for "diagram" or "DBML Previewer"
- Adjust settings to your preference
- Changes apply immediately without restart
How to Export
Via UI Buttons (recommended):
- Open any DBML file and preview it
- Look for export buttons in the top-right stats panel
- Click "Export PNG" or "Export SVG"
- Image downloads automatically with timestamped filename
Via Command Palette:
- Open Command Palette (
Ctrl+Shift+P / Cmd+Shift+P)
- Search for "Export Diagram to PNG" or "Export Diagram to SVG"
- Execute the command
- Image downloads automatically
How to Bulk Export
Via Explorer context menu (recommended):
- Right-click any folder in the VS Code Explorer panel
- Select "Bulk Export DBML Files to PNG" or "Bulk Export DBML Files to SVG"
- All
.dbml files in the folder are exported automatically
Via Keyboard Shortcuts:
Ctrl+Shift+Alt+E / Cmd+Shift+Alt+E: Bulk export to PNG
Ctrl+Shift+Alt+S / Cmd+Shift+Alt+S: Bulk export to SVG
Via Command Palette:
- Open Command Palette (
Ctrl+Shift+P / Cmd+Shift+P)
- Search for "Bulk Export DBML Files to PNG" or "Bulk Export DBML Files to SVG"
Future Configuration Options
- Performance optimization toggles
- Advanced layout algorithm options
Development & Contributing
Want to contribute? Check out our Contributing Guide for detailed setup instructions, coding guidelines, and development workflow.
Quick Development Setup:
git clone https://github.com/kykurniawan/vscode-dbml-previewer.git
cd vscode-dbml-previewer
npm install && npm run build
Architecture: React + React Flow + DBML Core + Dagre Layout
Contributing
Love this extension? Help make it even better:
Quick Start: Fork → Branch → Code → Test → Pull Request
Issues and Support
Reporting Issues
If you encounter any problems:
- Check existing issues on GitHub Issues
- Create a new issue with:
- Clear description of the problem
- Steps to reproduce
- Sample DBML file (if applicable)
- VS Code version and OS information
Getting Help
- Check our documentation
- Join discussions in GitHub Issues
- Contact us at contact.rizkykurniawan@gmail.com
System Requirements
- VS Code: 1.102.0+
- File Format:
.dbml files (DBML v2 syntax)
- Zero Setup: No additional dependencies required
License
This project is licensed under the MIT License - see the LICENSE file for details.
Special Thanks
Built with amazing open source tools:
Why Developers Love It
- Zero Configuration - Works instantly with any DBML file
- Lightning Fast - Optimized for performance and responsiveness
- Professional Quality - Production-ready with enterprise features
- Community Driven - Built with real developer feedback
Star this project if it helps you visualize databases better.
Made by Rizky Kurniawan
"From DBML text to visual database understanding in seconds"