This repo has been migrated to https://github.com/azimuttapp/azimutt
An Entity Relationship diagram (ERD) visualization tool, with various filters and inputs to help understand your SQL schema.
Why building my own ?
Most ERD tool I looked into (DrawSQL, dbdiagram.io , Lucidchart, ERDPlus , Creately, SqlDBM , QuickDBD) are focusing on creating/editing the schema (collaboratively) and displaying it (statically). This is nice when starting a new project with a few tables but doesn't really help when you discover an existing one with hundreds of tables and relations.
I really miss an interactive exploration tool with features like:
- filter/show/hide some tables
- filter/show/hide some columns
- search for tables, columns or even in metadata
- tag tables and columns to define meaningful groups (team ownership, domain exploration...)
- rich UI infos with:
- source links (schema file but also app models)
- database statistics (table size, column value samples)
- team/code ownership (git blame or specific format)
- tables/columns updates (from migrations files or schema file history)
For me, this tool is the missing piece between a classic ERD tool and a Data catalog.
Azimutt is a Single Page Application built with Elm that parse and explore your SQL schema.
First, you need to install npm, Elm & elm-spa on your machine and run npm install
to get the dependencies.
- launch dev server:
elm-spa server
orelm-live .elm-spa/defaults/Main.elm --dir=public --pushstate -- --output=public/dist/elm.js
- launch design system:
elm-book src/Components/Book.elm --dir=public --start-page=book.html --port 8001 -- --output=public/dist/book.js
(needsnpm install -g elm-book
or usenpx
) - launch the tests:
elm-test
(needsnpm install -g elm-test
or usenpx
) - run linter:
elm-review
(needsnpm install -g elm-review
or usenpx
) - check format:
elm-format src tests --validate
(needsnpm install -g elm-format
or usenpx
) - run coverage:
elm-coverage --open
(needsnpm install -g elm-coverage
) > doesn't work with elm-spa :( - install deps
elm-json install author/package
(needsnpm install --g elm-json
) - uninstall deps
elm-json uninstall author/package
- update deps
elm-json upgrade
(use--unsafe
flag for major versions)
If elm-spa
don't display a relevant error, try using elm-live
instead or compile with elm-make
: elm make .elm-spa/defaults/Main.elm
.
Elm folders are src
for sources, tests
for tests and public
for static assets.
When developing, please enable git hooks on your machine using: git config --local core.hooksPath .githooks
This tool started as a Ruby parser for the SQL schema, you can still find it under legacy/ruby
folder.
To run it you need to install Ruby & Bundler in your machine, then run bundle install
to get the dependencies.
- launch the
program:
exe/schema-viz generate --structure ./test/resources/schema.sql --output ../../tests/resources/schema.json
- launch the tests:
rake test
(& open coveragexdg-open coverage/index.html
) - launch a Ruby console:
bin/console
Ruby folders are lib/schema-viz
for sources & test
for tests.
The tool is available as open source under the terms of the MIT License.