I'm curious just why you want to write the database design
I'd write that in SQL with the CREATE commands,
and just update that SQL and rerun when something needs to be
adapted. Unless you routinely have to change the database
structure, than you're better off with controlling these things
in perl. I have only experience with writing the basic structure
once and after that expanding it occasionally.
Is there something in your application that calls for a
dynamic database structure?
For example, backing up. I have a cron job that runs
Postgres' pg_dump to dump all data in my database and saves
it on another server. That doesn't include the blobs, and
so I have a separate perlscript that dumps all blobs and puts
them in a tgz that is transferred to the other server.
There is a script available that can restore
the blobs may the need arise. These are just some bashscripts,
whith perl doing the more difficult tricks. The perlscript could
also have been written in bash and sql, but perl is the
more elegant glue in this case.