-
Generates docs from many databases at once
-
Supported adapters and specified things
- [-] MySQL
- [+] Tables
- [+] Columns
- [+] Triggers
- [+] Events
- [+] Foreign keys
- [+] Indexes
- [+] Stored functions and stored procedures
- [-] Partitions
- [-] Checks (MySQL >=8.0.16)
- [-] Additional schema and tables info
- [-] PostgreSQL
- [-] Microsoft SQL Server
- [-] SQLite
- [+] Tables
- [-] Indexes
- [-] Foreign keys
- [-] Additional schema and tables info
- [-] MongoDB
- [-] MySQL
-
Templates
- Full schema objects info allowed at any template
- HTML
- Table of contents in sidebar with anchor links
- Anchor links from foreign keys info
- Markdown
- Simple full-featured table style
- Confluence Storage Format
- Rich macros using: code-blocks and spoilers for DDL
- Table of contents with anchor links
- Confluence Wiki Format
- Simple full-featured table style
- JSON
- Include full Schema object structure
-
ERD
- Converts Schema object to text schema with relationships
- Generates beatify diagrams in png, jpg, pdf, svg and more formats
Install:
npm -g install schema-docs
yarn add global schema-docs
Usage:
schema-docs \
--database mysql://user:password/localhost:3306/database \
--templaters json,md,html \
--ignore-tables _migrations,_hashes
--output ./docs/db
--erd
schema-docs -c ./configs/schema-docs.json
You can pass configuration by two ways:
- As CLI arguments (only one database at once)
- As json file (any much databases at once)
Option | Description | Default | Example |
---|---|---|---|
--database, -d | database connection string | - | mysql://user@localhost/database |
--config, -c | jSON-configuration file path | - | ./config/schema-docs.json |
--templaters, -t | comma-separated list of names used templaters | json,html |
html,md |
--output, -o | output documentation root directory | ./schema-docs |
./documentation/db |
--ignore-tables, -i | comma-separated list with names to be ignored | "" | users_creditnals,admin_users |
--erd, -e | generate ER-diagram flag | none |
- |
Sample configuration file you can find at config.example.json
Structure:
{
//databases configuration
"databases": [
//simple connection with connection string
{
//connection name
"name": "databaseOne",
//connection string
"connection": "mysql://connection",
//generate ER-diagram
"erd": true,
//ignored tables list
"ignoreTable": [
"_migrations"
]
},
//build connection string from env-configuration
{
"name": "databaseTwo",
//env file info
"envConfig": {
//path to env file
"path": "/path/to/.env",
//connection string template with vars from env config
"connection": "mysq://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}"
},
"erd": true,
"ignoreTable": [
"_migrations"
]
},
//build connection string from json-configuration
{
"name": "databaseThree",
//json file info
"jsonConfig": {
//path to json config
"path": "path/to/config.json",
//connection string template with vars from json (allowed nesting)
"connection": "mysql://{database.user}:{database.password}"
},
"erd": true,
"ignoreTable": [
"_migrations"
]
}
],
//templaters configuration
"templaters": [
//simple templater name
"json",
//with overrided template
{
"html": {
"template": "path/to/template"
}
},
"md",
"confluence-wiki",
"confluence-store"
],
//output documentation directory
"output": "/path/to/save"
}
-
MySQL Workbench Model Document Generation
- Plugin for MySQL Workbench
- Single output format (md)
-
MySQL Workbench HTML Document Generation
- Plugin for MySQL Workbench
- Single output format (html)