我们有一个带有约1000个存储过程的SQL Server数据库。我们从未使用过git来保存该代码(好吧,我知道)。
现在,当我们有三个数据库开发人员而不是一个时,我们要开始做所有正确的事情,因此我们希望所有代码都保存在git中。
我们恳请就如何完成此事提供建议。
到目前为止,我们看到了两种策略:
1.有一个保留所有程序的文件
看起来像
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID('my_procedure'))
BEGIN
DROP PROCEDURE my_procedure
END
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].my_procedure ...
因此,运行此大文件将使所有过程都释放,然后重新创建它们。
2.每个存储过程上都有一个文件,其作用与上述相同
优点缺点
第一种方法使我们拥有单个项目代码,您可以在其中始终查看何时,为什么以及由谁更改了任何过程。因此,所有开发人员都将更改单个文件并在发生冲突时合并。但是这种方法会在发布之日杀死所有PLANS,因此可能会减慢数据库的速度(?)
第二种方法使我们可以更改单个过程而不会杀死所有其他过程。但是通过这种方法,我们将拥有1000多个文件,并且知道如何在发布日期更改的文件上运行。
感谢您的指教。
但是通过这种方法,我们将拥有1000多个文件,并且知道如何在发布日期更改的文件上运行。
是的,甚至想象您有表更改。那你怎么办 删除并重新创建所有表?
各种形式的标准方法是具有(手动或自动生成)更改脚本。我们这样做-用文件夹和运行号在git中检入它们,并具有一个同步机制,可以基本上检查尚未运行的并按字母顺序运行它们。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句