erd

An entity-relationship diagram generator from a plain text description.

https://github.com/BurntSushi/erd

Latest on Hackage:0.2.1.0

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

LicenseRef-PublicDomain licensed by Andrew Gallant
Maintained by [email protected]

erd transforms a plain text description of a relational database schema to a graphical representation of that schema. It is intended that the graph make use of common conventions when depicting entity-relationship diagrams, including modeling the cardinality of relationships between entities.

A quick example that transforms an er file to a PDF is just below. The original source file can be found amongst the examples in the repository.

$ cat simple.er
# Entities are declared in '[' ... ']'. All attributes after the
# entity header up until the end of the file (or the next entity
# declaration) correspond to this entity.
#
[Person]
*name
height
weight
+birth_location_id

[Location]
*id
city
state
country

# Each relationship must be between exactly two entities, which
# need not be distinct. Each entity in the relationship has
# exactly one of four possible cardinalities:
#
# Cardinality    Syntax
# 0 or 1         0
# exactly 1      1
# 0 or more      *
# 1 or more      +
Person *--1 Location
$ erd -i simple.er -o simple.pdf

The PDF should now contain a graph that looks like this:

See the README.md file for more examples and instructions on how to write ER files.