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

[ database, development, program, public-domain ] [ Propose Tags ]

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:

$curl 'https://raw.github.com/BurntSushi/erd/master/examples/simple.er' > simple.er$ 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.