我们正在为使用java和oracle 11g的客户开发基于Web的解决方案。该项目是为客户安装的,但其大部分功能正在开发中。每个月,我们都会发布一个应该安装在客户现场的新版本。问题在于,在每个版本中,数据库中有很多更改(表,视图,SP,触发器等)。我无法从开发线获得转储,并将其转移到客户现场。如何生成从旧数据库迁移到新数据库的SQL脚本?
的问题是我怎么能生成SQL脚本,可以在客户数据库的架构迁移到新的版本(开发版)?是否有任何自动生成此脚本的工具?有什么可以做到这一点在Java中的开源代码?这个问题的任何最佳实践?
编辑
根据答案,似乎是最好的做法就是从DB计划的直接变化禁止开发者,他们应该编写和提交修改脚本,每个数据库的更新。但是使用这种方法,过了一段时间后,会存在很多更改脚本,每个脚本都会在数据库中进行特定的更新。那我如何管理这些大量的脚本呢?
我认为工具存在,但我不知道任何名称。但是,管理它的方式通常是使用VCS来保存SQL脚本的历史记录,这些脚本将在给定版本的软件之间轻松管理修改。例如一个从头开始构建数据库的creation.sql脚本。另一个涉及修改。因此,当您第一次提交projet时,客户端将使用creation.sql文件,否则将使用update-1.2.1.sql(例如:)希望这将有助于下次使用。问候。 – 2012-08-23 16:40:09