mix ecto.gen.erd (ecto_erd v0.1.0) View Source
A mix task to generate an ERD (Entity Relationship Diagram) in a dot format
Examples
$ mix ecto.gen.erd
$ mix ecto.gen.erd --output-path=ecto_erd.dot
$ mix ecto.gen.erd && dot -Tpng ecto_erd.dot -o erd.png && xdg-open erd.png
See output and configuration examples in EXAMPLES group of PAGES section.
Command line options
--output-path- the path to the output file, defaults toecto_erd.dot.--config-path- the path to the config file, defaults to.ecto_erd.exs.
The configuration file
When running a mix ecto.gen.erd task, it tries to read a configuration file from the .ecto_erd.exs file in a current
working directory. Configuration file must return a keyword list.
Options
:fontname- font name, defaults toRoboto Mono. Must be monospaced font if more than 1 column is displayed.:columns- list of columns which will be displayed for each node (schema/source). Set to[]to hide fields completelly. Available columns::nameand:type. Defaults to[:name, :type].:map_node- function which allows to remove the node from the diagram or to move the node to the cluster. Defaults toFunction.identity/1, which means that all nodes should be displayed and all of them are outside any cluster. UseEcto.ERD.Node.set_cluster/2in this function to set a cluster. In order to remove the node, the function must returnnil.:otp_app- an application which will be scanned alongside with dependent applications in order to get a list of Ecto schemas. Defaults toMix.Project.config()[:app]. You need to configure this option only if you run a task from umbrella root.
Default values can be represented as follows:
# .ecto_erd.exs
[
fontname: "Roboto Mono",
columns: [:name, :type],
map_node: &Function.identity/1,
otp_app: Mix.Project.config()[:app]
]