# DBML - Database Markup Language
[](https://github.com/holistics/dbml/actions/workflows/test.yml)
[](https://www.npmjs.org/package/@dbml/core)
[](https://npm-stat.com/charts.html?package=@dbml/core)
[](https://www.npmjs.org/package/@dbml/cli)
[](https://npm-stat.com/charts.html?package=@dbml/cli)
DBML (database markup language) is a simple, readable DSL language designed to define database structures.
For more information, please check out [DBML homepage](https://dbml.dbdiagram.io)
## 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](https://dbdiagram.io)
- Also comes with a free database documentation app at [dbdocs.io](https://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
The community maintains DBML parsers, editor plugins and schema generators across many
languages. See the full, categorised list on the
[DBML Ecosystem page](https://dbml.dbdiagram.io/ecosystem).
Built something that reads or writes DBML? Add it to
[`dbml-homepage/src/data/ecosystem.ts`](dbml-homepage/src/data/ecosystem.ts) and open a pull
request.