如果一个由多个人组成的团队参与数据库开发,并且由于多个人执行相同的存储过程或函数或清除其他人未执行的代码而导致冲突,那么如何将数据库应用于数据库? 码? 相同版本的控件。 许多团队对此事感到非常恼火。 在某些团队中,其他团队没有数据库开发权限。 如果要修改或添加,则需要应用,并且DBA忙得不亦乐乎。
为什么要控制数据库版本?
首先,最重要的是,多个人可以随意修改和执行存储过程或函数。 (当前需要一种安全控制机制。)
二,数据库版本的演变,如果数据库已经在线,则版本控制非常重要,并且应用程序和数据库位于同一版本下 通过这种方式,可以很容易地追溯到开发过程中已发布程序中的问题。
第三,很容易跟踪人员对数据库的相关更改。
版本控制方法将使用oracle数据库和pl / sql开发人员开发工具,svn版本控制工具为例。 我的重点将是大量的存储过程和存储函数。
首先,要注意一个结构,即数据库中的过程和功能都封装在包中,这不仅便于管理,而且也非常便于版本控制。 因此,这里的过程和功能都在软件包中。
团队需要拥有一个共享数据库,即核心数据库。 然后将有一些开发人员沙箱。 最好每个人只有一个沙箱,即每个用户的数据库环境,可用于编写,编译,运行和测试。
在版本控制的库中创建一个新的数据库控制目录,并在下面以sql文本格式导入数据库结构文件文件,包括表,序列,视图(TSV代表表,序列,视图和数据库结构)等。可以将触发器视为单独的文件,因为触发器的修改频率不如TSV。
上面的文件是一个数据库结构文件,基本上不会改变。 同时,维护用于数据库结构修改的sql命令文本,其中记录了用于数据库结构修改的sql命令。 需要注意命令的顺序。 DBA可以定期将此更新文件的内容合并到TSV文件中。
然后创建一个包目录,该目录存储所有包,并在包中组织过程和功能。 然后每个包一个文件。 (将程序包保存在pl / sql developer中,它将变成pck格式的文本文件,其中包含标题和正文,因此非常方便)。 文件名是默认软件包名称。
很容易确定上述结构。 以上述方式将共享数据库另存为文本,并将其保存在版本控制目录下。
对于普通开发人员,如何进行修改? 以修改后的存储过程为例。
首先:在修改之前,在svn的控制下更新文件,并将服务器的最新版本获取到本地。
然后打开pl / sql Developer,file ---- open ---- program File在svn目录中打开需要修改的包,然后可以随时对其进行修改 修改时只需保存,因此修改后的内容将保存在本地svn文件中。
您可以在本地提交它,而不会出现任何问题或冲突。
每个开发人们遵循此过程,因此版本控制中的数据库必须是最新和最完整的,并且它比共享数据库更完整。 这消除了DBA手动维护数据库一致性的需要。 因为每次看起来都更像,所以您可以从svn日志中看到谁进行了更改。 非常方便。 如果多个人修改了存储过程,它将不会同时执行,这将导致一方程序被淘汰。 将每个人自己的沙箱中的程序同步到共享数据库没有任何麻烦。