There is another way to manipulate database objects. We use nmake from AT&T labs together with Perl DBI:: DBD::. We create OPERATORS to do database specific tasks. Everything is coded in the OPERATOR. It makes maintainence really easy.
A makefile would look like this:
The operator would scan the current directory and create all the necessary dependency relationships for tables,indices,constraints,procedures,triggers,static data, etc. Then build the ones that are out of date as well as anything that depended on the out of date targets.
Just modify the objects that need to change and rerun nmake with a database context and everything is taken care of. Only the objects that were changed are rebuilt. There is even a reload feature to reload a structure change to a table automatically.
I know this is quite vague but it really works. We can do major releases with major database structure changes within a half hour.
If anybody is interested I can ellaborate more.