现在我们有一堆数据库服务器,其中运行着文档不完善且不存在于其他地方的存储过程。
当对其中一个进行更改时,没有日志记录,很难弄清楚为什么原本正常的东西突然失败了。
最近我们转而使用 SVN 进行适当的版本控制,因此我希望将这些存储过程添加到版本控制中。
我们是 .Net 店,我知道存在一个 Database
项目类型。这是否是一个好的方法?
或者我可以将存储过程保留为文本文件并对其进行操作,但我想知道执行此操作所涉及的烦人部署步骤。
现在我们有一堆数据库服务器,其中运行着文档不完善且不存在于其他地方的存储过程。
当对其中一个进行更改时,没有日志记录,很难弄清楚为什么原本正常的东西突然失败了。
最近我们转而使用 SVN 进行适当的版本控制,因此我希望将这些存储过程添加到版本控制中。
我们是 .Net 店,我知道存在一个 Database
项目类型。这是否是一个好的方法?
或者我可以将存储过程保留为文本文件并对其进行操作,但我想知道执行此操作所涉及的烦人部署步骤。
请查看Redgate的SQL源代码控制。它在SSMS中有一个内置界面,并且可以与SVN集成。
http://www.red-gate.com/products/sql-development/sql-source-control/
我们使用数据库项目,并且取得了良好的结果。所有的DML都存在于该项目中(3000+项)。
开发人员必须在源代码控制中更改DML并进行检入,只有检入的内容才能被推广/部署。
我们的源代码控制是TFS,我注意到从VS界面中删除过程并不总是标记要从源代码控制中删除的过程。不确定SVN对此做了什么。
是的,我会建议一个数据库项目 - 您可以在两个方向上同步数据库元素(表/存储过程等):源文件到数据库或数据库到源文件。
您可以从创建空数据库项目开始,然后从现有数据库同步到您的项目,这将为您创建.sql创建脚本。
而且,您还可以使用数据库项目创建部署脚本。非常方便。