we have an application with Oracle 10g. Regularly our company makes patches for the existing products. Sometimes the DB layout and/or data must be changed during the patch. (It is not possible to completely recreate the DB.) The customer can remove the patch or install a new version of the tool.
As result we have a lot of problem with managing the changes in the DB. It can happen that we try to extend a table with an already existing column or update a non existing record and so on.
Does anybody know about a good design pattern or a tool or ??? how to manage DB changes without problems?