工作中我们使用Oracle和C#/ASP.net来处理一个客户的网站,这个网站规模很大,所以数据库很大。
我们使用 Perforce 进行版本控制,并在数据库更改时将创建或替换脚本添加到 FogBugz 案例中,这一直很好,因为我们现在正处于五个开发人员正在为系统进行五个扩展的地步,每个扩展都在一个单独的 Perforce 分支。不幸的是,由于数据库的大小,我们无法获得重复的数据库,所以每个人仍然使用同一个数据库。这显然是导致问题的原因:就在十分钟前,我们遇到了一个问题,其中一个分支的存储过程更改传播到了预生产服务器,并导致测试人员大量崩溃。理想情况下,我们想要一种方法来跟踪这些变化,而不必通过 FogBugz 手动跟踪它们。
我的问题是:你如何处理这种情况?我确信现在必须有一种好方法来处理 Oracle 数据库中的版本控制或至少跟踪更改。
如果数据库升级可行,11gR2 已经引入了代码版本的概念。
您的数据架构与代码架构相同吗?将它们分开可能是个好主意。这样你就可以拥有相同的数据库表集,但不同的代码模式集。然后一个项目可以使用一种代码模式,而另一个项目可以使用第二种模式。
只要您绑定到一组数据,那么您就会受到限制。如果一个项目需要单个字符值,但另一个项目将其扩展为两个字符,则可能会出现问题。