Sho*_*ess 10 t-sql database visual-studio-2010 visual-studio
愚蠢的问题,我知道......让我先做一些基础工作.
我已经成功创建了一个由数百个表,存储过程,索引等组成的数据库项目.构成我们的生产数据库.
我已成功将解决方案添加到源代码管理(TFS).
我必须说,我已经对一些对象进行了更改(作为测试)并生成了部署脚本,整个系统非常令人印象深刻.但看起来VS 2010的实力,从数据库的角度来看是部署,而不一定是开发.
我对使用Visual Studio进行数据库/ TSQL开发所涉及的日常工作流程感到困惑.假设我需要向表中添加几列,并修改相关的存储过程以返回/更新这些列的数据.
虽然很容易修改我的数据库模型中的所有脚本,但我希望能够将它们与开发数据库隔离开来,我可以在那里进行一些测试......但是如果没有更新proc那就简单了存在而不手动将脚本更改为ALTER(或在CREATE之前添加DROP代码).必须这样做一两次是没有问题的,但在真正的开发环境中,我们整天都这样做.
也许答案是执行频繁部署到开发服务器,例如我调试并对proc进行更改?相当多的开销; 我可以在几秒钟内手动执行必要的脚本,构建和部署需要几分钟.另外,如果我们三个人正在为dev DB部署不同的更改,我们是否不会覆盖彼此的修改?
很抱歉这么长,但我不禁想到我在这里错过了一些简单的东西.
是否有任何书籍/教程/网络研讨会展示了这种实际开发方法?
我觉得你已经敲了敲头.为了测试修改后的存储过程,您必须完成部署步骤才能更新数据库.这是离线开发模型的缺点.
在Red Gate,我们有很多要求使SQL Source Control支持数据库项目,这将允许开发人员从"在线"开发模型中受益,同时仍然受益于数据库项目功能.
[编辑]我们在SQL源代码管理中为数据库项目添加了"Beta"支持,它允许针对数据库项目格式进行连接的SSMS开发.使用SQL Source Control中的eh .sqlproj文件轻松链接到该文件夹并开始开发![/编辑]
与此同时,您必须定期继续部署到开发人员!
另一种方法是在真实数据库上开发,并使用Schema Compare功能同步回数据库项目.Schema Compare在Visual Studio的Premium和Ultimate版本中提供.
David Atkinson产品经理Red Gate Software