DBML - Database Markup Language DBML (database markup language) is a simple, readable DSL language designed to define database structures.
For more information, please check out DBML homepage
Benefits
- It is simple, flexible and highly human-readable
- It is database agnostic, focusing on the essential database structure definition without worrying about the detailed syntaxes of each database
- Comes with a free, simple database visualiser at dbdiagram.io
- Also comes with a free database documentation app at dbdocs.io
Example
Example of a database definition of a simple blogging site:
Table users {
id integer
username varchar
role varchar
created_at timestamp
}
Table posts {
id integer [primary key]
title varchar
body text [note: 'Content of the post']
user_id integer
created_at timestamp
}
Ref: posts.user_id > users.id // many-to-one
Community Contributions
- Emacs Mode for DBML (Contributed by ccod)
- Vim Plugin for DBML (Contributed by jidn)
- VSCode Plugin for DBML by duynvu
- Python parser for DBML by Vanderhoof
- FloorPlan: Android's Room to DBML by julioz
- Go parser for DBML by duythinht
- DbmlForDjango: Converter between Django models.py and DBML
- parseServerSchema2dbml: Converter between ParseServer MongoDB _SCHEMA collection and DBML by stepanic
- dbml-renderer: A DBML CLI renderer
- dbml-parser: A DBML parser written on PHP8 by Butschster
- Kacher: Laravel's Database Schemas to DBML by Arsanandha Aphisitworachorch
- d365fo-entity-schema: Generate DBML from Dynamics 365 Finance and Operations