Toolkit for changing DB schema for new app versions?



Does anyone know of a useful set of classes to help manage upgrading a
particular database schema as you need to push new versions to users?
I don't mean the version of the DBMS software, but the actual DB schema
that an app accesses.

For example, if v2.0 of MyHibApp adds some columns to one table and
changes the type of a column in another, and then v3.0 adds 2 whole new
tables, I need a straightforward way to move users from v1.x to v2.0
and then to v3.0. This would involve adding/changing the columns and
probably populating existing records with some default values or with
values derived from information in the DB already.

I have rolled my own solutions before in C++ and know that I could
easily write some basic class to do this for my particular app, but I
was wondering if anyone had used a good java toolkit that setup a nice
structure for you already in a more general way. Seems like a common
issue that people would hit all the time.

Thanks,

e

.