jpschewe / fll-sw

FIRST Lego League scoring software
http://jpschewe.github.io/fll-sw/
GNU General Public License v2.0
10 stars 7 forks source link

Find new database schema diagram tool #26

Closed jpschewe closed 10 years ago

jpschewe commented 10 years ago

It seems that the plugin that I've been using has gone completely commercial and I can't download it anymore. I need to decide what to do about our database diagram.

jpschewe commented 10 years ago

Question is do we want a diagram that is maintained manually or do we want to use something that reads the database and creates the diagram?

eengstrom commented 10 years ago

Depends. Do you ever intend to generate code from the diagram? if not, and you feel as if the diagram has documentation value, then generate the diagram from the schema.

jpschewe commented 10 years ago

I don't generate code off of it so generating the diagram is probably best. Although the schema changes depending on the challenge description. So a challenge description would need to be made that has all features init to create a generic database that we could then generate a schema off of. This isn't difficult, but we do need to be aware of this.

jpschewe commented 10 years ago

Some options that look promising.

SchemaSpy looks like it generates a set of HTML pages and diagrams (using GraphViz) that would be nice to walk through. We should look into if it supports HSQL and if it's callable directly from inside our application. http://schemaspy.sourceforge.net/

SchemaCrawler also looks good. It supports HSQL and it has an API for accessing database metadata as Java objects. It also uses GraphViz for diagrams. http://schemacrawler.sourceforge.net/index.html

If those don't pan out Erviz looks like it might be an option too. It hasn't been maintained in a LONG time, but we could generate diagrams with it. http://slopjong.de/2011/02/26/whats-erviz/

jpschewe commented 10 years ago

I decided on SchemaSpy as it was the first one I tried and I was able to get it connected to an internal example database. I hooked it into the documentation that is sent with the distribution. At this point I'm not hooked into the documentation in Jenkins.

jpschewe commented 10 years ago

Switched javadoc to go into docs/api rather than dist/docs/api. This allows all of the documentation to be referenced from Jenkins.