Виждал съм не-знам-колко-много начини, опитващи се да се справят с това и в крайна сметка мисля, че трябва просто да поддържате ръчни скриптове.
Сега не е задължително да пишете сами. В MSSQL, докато правите промяна, има малък бутон за генериране на скрипт, който ще излъчи SQL скрипт за промяната, която правите. Знам, че говорите за Oracle и минаха няколко години, откакто работих с техния GUI, но мога само да си представя, че имат същата функция.
Въпреки това, не можете да се измъкнете от ръчната работа със скриптове. Ще имате много проблеми с вече съществуващи данни, като стойности по подразбиране за нови колони или как да обработвате данни за преименувана/изтрита/преместена колона. Това е само част от анализа при работа със схема на база данни във времето, от която не можете да се измъкнете. Ако се опитате да направите това с напълно автоматизирано решение, данните ви ще се объркат рано или късно.
Единственото нещо, което бих препоръчал, само за да направя живота ви малко по-лесен, е да се уверите, че отделяте промените в схемата от промените в кода. Разликата е, че промените в схемата на таблици и колони трябва да се изпълняват точно веднъж и никога повече и следователно трябва да бъдат версионирани като индивидуални скриптове за промяна. Въпреки това, промените в кода, като съхранени процедури, функции и дори изгледи, могат (и трябва) да се изпълняват отново и отново и могат да бъдат управлявани като всеки друг кодов файл. Най-добрият подход към това, който съм виждал, беше, когато имахме всички процедури/функции/изгледи във VSS и нашият процес на изграждане щеше да изпусне всички и да ги създаде отново по време на всяка актуализация. Това е същата идея като да направите повторно компилиране на вашия C#/Java/който и да е код, защото гарантира, че всичко винаги е актуално.