Code Monkey home page Code Monkey logo

azimutt's Introduction

Azimutt

Netlify Status

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:

screenshot

Installation

Azimutt is a Single Page Application built with Elm that parse and explore your database schema.

First launch:

  • install npm, Elm & elm-spa
  • run npm install to download npm dependencies
  • run elm-spa server to generate needed files (.elm-spa/defaults & .elm-spa/generated)

Dev commands:

  • launch dev server: elm-spa server or elm-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 (needs npm install -g elm-book or use npx)
  • launch the tests: elm-test (needs npm install -g elm-test or use npx)
  • run linter: elm-review (needs npm install -g elm-review or use npx)
  • check format: elm-format src tests --validate (needs npm install -g elm-format or use npx)
  • run coverage: elm-coverage --open (needs npm install -g elm-coverage) (doesn't work with elm-spa)
  • install deps elm-json install author/package (needs npm 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

License

The tool is available as open source under the terms of the MIT License.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.