strict digraph g {

ranksep="1.6"
graph [
rankdir = "LR"
];
node [
fontsize = "16"
];
edge [
arrowhead = "none"
];

<%- tables.each do |table| -%> “<%= table.table_name %>” [shape=none, margin=0, label=<

<table border="0" cellborder="1" cellspacing="0" cellpadding="4">
  <tr><td bgcolor="lightblue"><%= table.table_name %></td></tr>
<%- table.flat_fields.each do |field| -%>
  <tr><td port="<%= field.name %>" align="left"><%= field.name %></td></tr>
<%- end -%>
</table>>];

<%- end -%> <%- tables.each do |table| -%>

<%- table.flat_fields.each do |field| -%>
  <%- if field.belongs_to_one && table_included?(field.belongs_to_one)-%>

“<%= table.table_name %>”:“<%= field.name %>” -> <%= arrow_target(field.belongs_to_one) %> [arrowhead=“tee<%= 'odot' if !field.required? %>”];

<%- end -%>
<%- if field.has_many -%>
  <%- field.has_many.each do |r| -%>
    <%- if table_included?(r)-%>

“<%= table.table_name %>”:“<%= field.name %>” -> <%= arrow_target® %> [arrowhead=“crow<%= 'odot' if !field.required? %>”];

      <%- end -%>
    <%- end -%>
  <%- end -%>
<%- end -%>

<%- end -%> }