sql-server – Visual Studio 2010和SQL Server 2008脚本和数据
我们目前正在使用Visual Studio 2010和SQL Server 2008 R2 – 开发使用(多个)SQL Server数据库的Intranet ASP.NET应用程序.
我们已经在源代码控制中存储SQL Server的脚本(数据库),与SQL Server Management Studio(SSMS)或Visual Studio等任何工具分开存储.也就是说,我们有一个包含表,存储过程等脚本的文本文件的集合;我们在更新它们之前(例如在Management Studio中)直接检查这些进入和退出源代码控制并重新检查它们(然后使用SSMS中的脚本来更新数据库). 我们现在想转向采用更综合的方法. 我在StackOverflow中阅读了与SQL Server相关的源代码控制的几个问题/答案(其中一些可追溯到几乎是StackOverflow的开头),但是还没有找到任何出色的解决方案.此外,一些条目早于Visual Studio 2010或SQL Server 2008或现在可用的一些工具. 我也阅读了关于这个话题的其他文章,例如Troy Hunt的文章(一个例子是:http://www.troyhunt.com/2011/02/automated-database-releases-with.html)和K. Scott Allen的文章(例如:http://odetocode.com/blogs/scott/archive/2008/02/02/versioning-databases-views-stored-procedures-and-the-like.aspx). SQL Server Management Studio具有“数据库项目”的概念,但这显然是不推荐使用的功能,不推荐用于新开发. 目前我们正在考虑的方法是: (1)在Visual Studio 2010中创建SQL Server 2008数据库项目,并将其连接到源控件(例如TFS或VSS). [此选项可能需要Visual Studio的Premium或Ultimate或Team Database Edition.] 该方法将脚本视为“主”,并从该脚本创建/更新数据库以与脚本版本同步. 这种方法的理想特征是:全局搜索,查找/替换,重构,缺少索引或无效引用的项目的警告等. 缺点是:没有用于表和其他项目的GUI设计器,可以容易地丢失数据,同时对列进行一些更改(因为“alter”脚本丢弃列并重新创建它),缺少“format document”命令(在Visual Studio中可用)用于Web项目,但不适用于数据库项目). (2)在SQL Server Management Studio中使用Red-gate SQL Source Control(和SQL Compare). 该方法基本上将数据库视为“主”,并根据数据库设计的更改来更新脚本.在许多方面,这与许多小型开发团队的工作方式更接近. 这种方法的主要优点是您可以使用所有SSMS工具和设计器. 缺点是缺少设计完整性检查,无需查找/替换或全局搜索(不安装其他附件),而使用SQL Source Control生成的脚本在语法上与SSMS或Visual Studio本机生成的脚本不同最终结果是一样的). ===== 您是否有替代方法的建议,是否使用/更喜欢将SQL Server数据库的源代码控制集成到SQL Server Management Studio或Visual Studio 2010中的特定工具或实用程序,以及如何更新/同步开发和生产数据库有变化? 我也看过其他一些软件工具/工具(其中一些已经在其他StackOverflow主题中提到): SQL检查器(尽管它是一个完全独立的工具,但未集成到SSMS或Visual Studio中) LiquiBase(Apache / Java,还没有.NET) NeXtep(尚无SQL Server支持) DBSourceTools(尚未集成) 解决方法我的组织一直在使用两个不同的项目,我已经变得非常偏袒RedGate工具.正如您所提到的,要获得完整的功能,您需要RedGate的整个工具集,但您也可以获得大量的功能(包括重构或全局搜索/替换).为了将DEV同步到TEST / QA / PROD环境,我使用他们的Compare产品来构建脚本集(通常需要进一步审查).我真的不信任任何工具来更新使用中的架构,除非我准备快速恢复它.相比之下,我发现MS工具过于复杂,这使得它们有些僵化.当我们在数据库中进行一些需要同步到项目中的变化时,我们发现自己在一个泡菜,但项目的变化,不允许在没有数据库变更的情况下构建该项目…最终一个需要大量手动编辑(并导致测试和购买RedGate工具)的整体catch-22场景. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |