Auto Generate Database Diagram MySQL

MysqlDatabaseDatabase DesignDiagram

Mysql Problem Overview


I'm tired of opening Dia and creating a database diagram at the beginning of every project. Is there a tool out there that will let me select specific tables and then create a database diagram for me based on a MySQL database? Preferably it would allow me to edit the diagram afterward since none of the foreign keys are set...

Here is what I am picturing diagram-wise (please excuse the horrible data design, I didn't design it. Let's focus on the diagram concept and not on the actual data it represents for this example ;) ):

diagram see full size diagram

Mysql Solutions


Solution 1 - Mysql

Try MySQL Workbench, formerly DBDesigner 4:

http://dev.mysql.com/workbench/

This has a "Reverse Engineer Database" mode:

Database -> Reverse Engineer

enter image description here

Solution 2 - Mysql

I've recently started using https://github.com/schemaspy/schemaspy . It strikes me as having a good balance between usability and simplicity. (GraphViz now optional)

Solution 3 - Mysql

On a Mac, SQLEditor will do what you want.

Solution 4 - Mysql

This http://code.google.com/p/database-diagram/ will reverse engineer your database. Just do an export 'structure only' then paste the SQL into the tool.

Solution 5 - Mysql

Try MySQL Maestro. Works great for me.

Solution 6 - Mysql

I believe DB Designer does something like that. And I think they even have a free version.

edit Never mind. Michael's link is much better.

Solution 7 - Mysql

MySQL Workbench worked like a charm.

I just backed up database structure to SQL script and used it in "Create EER Model From SQL Script" of MWB 5.2.37 for Windows.

Solution 8 - Mysql

In MySql Workbench (6.0) its possible generate one diagram based on tables created. For that you should access to the tools bar, press Model and forward Create Diagram from Catalog Objects and done!

Solution 9 - Mysql

Visual Paradigm for UML 9.0

It's awesome I used to work with mysql bench but for big databases (something like more than 300 tables) won't work very well but visual paradigm reverse database works so much better

Solution 10 - Mysql

phpMyAdmin has what you are looking for (for many years now): It takes a small bit of configuration, but gives you additional benefits too: http://www.phpmyadmin.net/documentation/#pmadb

Solution 11 - Mysql

Try out Vertabelo!

It's an online database modeler that supports reverse enginnering.

Just create free of charge Vertabelo account, import an existing database into Vertabelo and voila - your database is in Vertabelo!

It supports following databases:

  • PostgreSQL,
  • MySQL,
  • Oracle,
  • IBM DB2,
  • HSQLDB,
  • MS SQL Server.

Solution 12 - Mysql

Try SchemaBank. They support reverse engineering too.

Solution 13 - Mysql

The "Reverse Engineer Database" mode in Workbench is only part of the paid version, not the free one.

Solution 14 - Mysql

Here is a tool that generates relational diagrams from MySQL (on Windows at the moment). I have used it on a database with 400 tables. If the diagram is too big for a single diagram, it gets broken down into smaller ones. So you will probably end up with multiple diagrams and you can navigate between them by right clicking. It is all explained in the link below. The tool is free (as in free beer), the author uses it himself on consulting assignments, and lets other people use it. http://www.scmlite.com/Quick%20overview

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestioncmccullohView Question on Stackoverflow
Solution 1 - MysqlMichael StumView Answer on Stackoverflow
Solution 2 - MysqlReinderienView Answer on Stackoverflow
Solution 3 - MysqlmlambieView Answer on Stackoverflow
Solution 4 - Mysqlmonk-e-boyView Answer on Stackoverflow
Solution 5 - MysqlJuan IgnacioView Answer on Stackoverflow
Solution 6 - MysqlMark BiekView Answer on Stackoverflow
Solution 7 - MysqlTauri AlfaView Answer on Stackoverflow
Solution 8 - MysqlHugo SilvaView Answer on Stackoverflow
Solution 9 - Mysqlmb2015View Answer on Stackoverflow
Solution 10 - MysqlChris MurrayView Answer on Stackoverflow
Solution 11 - MysqlBartekView Answer on Stackoverflow
Solution 12 - MysqlLeigh PyleView Answer on Stackoverflow
Solution 13 - MysqlJohn DowneyView Answer on Stackoverflow
Solution 14 - MysqlLudovic AubertView Answer on Stackoverflow