我们正在为使用 java 和 oracle 11g 的客户开发基于 Web 的解决方案。该项目是为客户安装的,但其大部分功能正在开发中。每个月,我们都会发布一个新版本,应该在客户现场安装。问题是在每个版本中,数据库中都有很多变化(表、视图、SP、触发器等)。我无法从开发线上获取转储并将其带到客户站点。
问题是如何生成可以将客户数据库架构迁移到其新版本(开发版本)的 SQL 脚本?是否有用于生成此脚本的自动化工具?java中是否有任何开源代码可以做到这一点?这个问题的任何最佳实践?
编辑
根据答案,似乎最好的做法是禁止开发人员直接更改数据库方案,他们应该为每个数据库更新编写并提交一个更改脚本。但是使用这种方法,一段时间后,会出现大量的更改脚本,每个脚本都在数据库中保存一个特定的更新。那么我该如何管理这些大量的脚本呢?