bor*_*jab 13 database oracle version-control
我一直在寻找一种方法来检查数据库中的源代码控制.我的第一个想法是计算数据库差异的程序,并要求所有开发人员将他们的更改作为新的差异脚本.现在,我发现如果我可以将数据库转储到文件中,我可以检查它并将其用作另一种类型的文件.
主要条件是:
这不简单.我已经下载了很多以这种或那种方式失败的演示.
编辑:我不介意替代方法,只要它们允许我们以批处理模式检查我们的发布数据库结构和对象+数据的工作系统.
顺便说说.我们的项目已经开发多年.当你重新开始时,一些方法很容易实现,但在这一点上看起来很难.
编辑:为了更好地理解问题,我们可以说有些用户有时会对生产环境中的配置数据进行更改.或者开发人员可能会在realease分支中创建新字段或更改视图,而不会发出通知.我需要知道这些变化,或者将变更合并到生产中会很复杂.
Ste*_*ell 14
很多人都试图做这种事(diff schemas).我的意见是
这些天我做事的方式是创建类似于Ruby on Rails迁移的迁移脚本.将DDL放入脚本并运行它们以在不同版本之间移动数据库.将发布的组更改分组到单个文件或一组文件中.然后你有一个脚本将你的应用程序从版本x移动到版本y.
我从未做过的一件事(我以前做过,直到我学到更好)是使用任何GUI工具在我的开发环境中创建数据库对象.从第1天开始编写DDL脚本 - 无论如何你都需要它们来推广代码以进行测试,生产等.我见过很多人使用GUI来创建所有对象并且发布时间有一个拼字游戏试图生成用于正确创建/迁移模式的脚本,这些脚本通常未经过测试而失败!
每个人都会对如何做到这一点有自己的偏好,但多年来我已经看到很多事情已经形成了我的意见.