在我们当前的数据库开发环境中,我们已经自动构建过程从 svn create database 脚本中检查所有 sql 代码,并将它们应用于各种开发/qa 数据库。
这一切都很好,与我们过去所做的相比有了很大的改进,但我们在重新运行脚本时遇到了问题。显然,对于某些脚本(例如更改过程)来说,这不是问题,因为您可以一遍又一遍地运行它们而不会对系统造成不利影响。现在要添加元数据并运行诸如创建/更改表语句之类的语句,我们添加代码来检查对象是否存在,如果存在,则不要运行它们。
我们的问题是我们真的只有一次运行脚本,因为一旦脚本运行,对象就在环境中,系统不会再次运行脚本。如果在部署后需要更改某些内容,我们会遇到一个困难的过程,即针对更新脚本运行更新脚本并希望一切都按正确的顺序排列,并且所有 PK 在环境之间排列(我们应该说数据库是, “特别的”)。
没有删除数据库并从头开始流程(最新的最新版本),有没有人对此有更优雅的解决方案?