Hacker News new | ask | show | jobs
by sbuttgereit 1110 days ago
From what I can tell, a lot of these tools seem OK for capturing relatively simple database designs, but at least "look" fairly inadequate for more robust needs. This makes sense if you're trying to use a GUI for creating a database: there's going to be limits to how much you can accomplish easily with that approach so being robust for smaller databases works out.

Most of the time I want an ERD tool it's to capture a database that I've already built for documentation purposes, or to document a database that someone else has built and that I need to come to terms with.

For this I use SchemaSpy (https://schemaspy.org/). I let it reverse engineer the database, build the diagrams, etc. I like the way it organizes what it captures and that it will do things like capture in-database object comments and put them in sensible places; for example, this lets me use the PostgreSQL COMMENT ON * commands to add contextually relevant documentation in the DDL and this tool will do the right thing when I generate database documentation.

1 comments

I used SchemaSpy to great effect for many years, till someone decided it was abandoned and took it over. When I tried again it had become shockingly bloated presumably in the name of modernity. I just wrote a one pager for the SQL dialect I was in and moved on. I get that it is java, and bloating is considered normal but as the original author proved, it does not have to be that way all the time.
This could well be the case, but to be honest I'm not too concerned by that. So in short, it may not be a well engineered product, but it seems to do its job well enough which is all I really care about as a user.

My usage pattern is to run it on a workstation (usually my personal workstation or laptop) and take the result and put it somewhere useful. It's not a perpetually running process or something I'd run on, say, a production machine where any bloat could produce meaningfully negative results. Those results are also not something I'm too worried about for things like bloated web pages or so... at least insofar as the audience for that result is fairly limited and the user experience isn't something I see as hurting usability. Any extra time it takes doing its job because of any inefficiency doesn't really impact me either; once I'm at a point I can set it running on a database, I haven't found it to be terribly long running, I don't run it often, and usually I can just do other stuff while it's running (a few minutes or so).

I haven't found anything open source that produces as good a result and its commercial competitors aren't any better in any sufficiently meaningful way... unless you want to start talking about database documentation being integrated into larger, consolidated requirements/documentation tools.

If anything I'm pleased that someone did pick up the maintenance and that new database features and the like have some hope of being supported... and without maintenance the result -would- eventually come to suffer as things in the database world moved on.