2009-11-03

Database modeling conclusions

Well, this morning I've reached a conclusion to my search for database modeling happiness.

First I would like to point out that a tool exists to examine a PostgreSQL database and output a file that can be read by Dia, and that it does actually work. It requires that relationships between tables be defined in the database (as foreign keys), and does not seem to generate very appealing output at first glance, but it did actually get my existing database model into Dia without much hassle. The utility is PostgreSQL Autodoc; I used the Debian package.

Also - Power*Architect does work. When I first tried using it, it tossed up a cryptic exception because the filesystem on my database server was full. Oops. After I grew my filesystem and got the program connected, it drew up a diagram of my database in more or less the same way as Dia - not particularly good-looking, with the same relationships based on the same foreign keys. It did one thing better, though, which is that it spit out a one-page PDF image of my database upon request, which then printed up nicely without complaint. I will likely be using it for this purpose from now on.


At this point, it was obvious to me that neither of these tools were going to allow me to extend or design tables any better or easier than simply editing the migration, so that's what I am going ahead with now. It really just comes down to the fact that I would rather write Ruby than SQL or some kind of pseudo-code. However, I am pleased with my experiment, as I now have a nice printed diagram to refer to throughout the process and I can update it easily as I continue my work.

Also, I haven't gotten the impression that there are any other tools (free or otherwise) which would perform the functions I am looking for any better than the two I have been trying out. However, it's always possible that I am just not searching in the right places. I'll certainly be keeping an eye out for this type of software in the future.

Until next time...

No comments:

Post a Comment