Re: Schema tool

From: Aram Fingal <fingal(at)multifactorial(dot)com>
To: Postgres-General General <pgsql-general(at)postgresql(dot)org>
Subject: Re: Schema tool
Date: 2010-11-15 19:24:54
Message-ID: A1B38436-A943-45DB-95AA-F06150B6E6ED@multifactorial.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Thanks, each of you for all the suggestions on schema generating tools. The idea is to have something which will connect to the database and automatically make a schema from what you've got. Here's what I have had a chance to evaluate so far...

DBVisualizer - It does a good job with the default placement of tables and links and some nice features for what to include/exclude from the diagram. The ability to select specific tables is very handy since I have a few tables which I plan to get rid of as soon as I have the data moved to a different database. Also, part of the point of what I'm doing is to support certain other people who will want to write queries. They each have specific interests and don't need all the tables. I will probably make more than one simplified version of the schema, each focused on a specific set of data.

Drawbacks: It missed one foreign key relationship. I don't know why but that link is missing from the diagram. SQL Power Architect (see below) did see and diagram this relationship. Links get a little jumbled when I move things around a little and then switch back and forth between different kinds of views (hierarchic, organic, orthogonal, etc.) That's not too difficult to fix because all you have to do is drag each table slightly and the links get redrawn in a more optimal way. It doesn't have the turkey foot (or whatever you call it) to indicate a many-to-one relationship. I suppose that's not a big deal since the relationships are pretty obvious in my database, with each foreign key link going to the primary key of another table. One very minor thing is that there are some places where I want to indicate that a foreign key is specified with "on update cascade." I will have to export to graphics and add that note to the diagram.

The one big thing is that it displays views as disconnected objects. Views are very important for this project and it would be good to indicate where their contents are coming from. I'm not sure how best to diagram that since many of the view columns are taking several columns from various tables and performing a mathematical computation. To understand what is in each column of the view, you need to see both the inputs and the formula.

SQL Power Architect - also free and open source - This was not actually suggested on this list but some of the suggestions led me to the right key words to do another search and find it. As I understand, the main point of this tool is to transfer data from one database instillation to another. For example, if you want to migrate data from MS SQL Server to PostgreSQL, this is a tool you should look at. Deriving a schema is just one element of this. You connect to the source database and it reverse engineers it for you and shows you the results. You make changes and selections of what you want to move, etc. Then you hit "Forward Engineer" and it moves the data to your target, according to your edited schema. The advantage is that it shows lots of information and looks to be good for figuring out environments with lots of different kinds of databases all over the place. It has more features to change appearance of the diagrams than DbVisualizer does, including colors of the text and the table, itself. It can export to HTML.

Drawbacks: It does not put the tables in a convenient layout by default. You can't easily exclude objects but you can delete them from the diagram. Links point to any place on the tables and not the specific columns which they refer to/from. You can drag the links around so that they do point to the exact column but this can be frustrating drudge work since each drag moves both ends of the link and you can easily mess up corrections you made earlier. For some reason it didn't detect the correct datatypes for many rows and just put "CLOB" where it should be INTEGER, DATE, etc. SQL Power Architect also displays views as disconnected objects.

SchemaSpy looks to be a good option since they mention that they had to do some custom work to support views but I'm having trouble getting it to work at this point.

dbWrench by Nizana looks interesting but it's commercial and I want to see if a free option will work first. I'm not totally against spending money but I have seen situations where free stuff ends up being as good or better than commercial.

MicroOLAP Database Designer and PostgreSQL Maestro are Windows only, unless I missed something. I do have both WINE and a Windows VM under VirtualBox but I would prefer something Mac native.

I haven't had a chance to check out Mogwai yet.

-Aram

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Aram Fingal 2010-11-15 19:31:49 Re: Schema tool
Previous Message Willy-Bas Loos 2010-11-15 19:07:17 Re: postgreSQL-devel 8.3.8