Я видел множество способов «Я не знаю, как» пытался справиться с этим, и, в конце концов, я думаю, что вам нужно просто поддерживать сценарии вручную.
Теперь вам не обязательно писать тогда самим. В MSSQL, когда вы вносите изменения, есть небольшая кнопка Generate Script, которая выдаст SQL-скрипт для внесенного вами изменения. Я знаю, что вы говорите об Oracle, и прошло уже несколько лет с тех пор, как я работал с их графическим интерфейсом, но я могу только представить, что они имеют ту же функцию.
Однако вы не можете уйти от работы со сценариями вручную. У вас будет много проблем с уже существующими данными, такими как значения по умолчанию для новых столбцов или как обрабатывать данные для переименованного / удаленного / перемещенного столбца. Это лишь часть анализа работы со схемой базы данных с течением времени, от которой невозможно уйти. Если вы попытаетесь сделать это с помощью полностью автоматизированного решения, ваши данные рано или поздно испортятся.
Единственное, что я бы порекомендовал, просто чтобы немного облегчить вашу жизнь, - это убедиться, что вы отделяете изменения схемы от изменений кода. Разница в том, что изменения схемы в таблицах и столбцах должны выполняться ровно один раз и никогда больше, и поэтому должны быть версионированы как отдельные сценарии изменений. Тем не менее, изменения кода, такие как хранимые процедуры, функции и даже представления, могут (и должны) выполняться снова и снова, и могут быть версиями, как и любой другой файл кода. Лучший подход к этому я видел, когда у нас были все procs / functions / views в VSS, и наш процесс сборки отбрасывал все и воссоздавал их при каждом обновлении. Это та же идея, что и при перестройке вашего C # / Java / любого другого кода, потому что он гарантирует, что все всегда обновлено.