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