Tvd*_*vdH 2 sql-server visual-studio-2013 sql-server-data-tools
我们正在使用带有SSDT的Visual Studio 2013主要用于版本化t-sql代码,因此sql正在开发服务器上开发,然后我们使用模式比较将脚本传输到visual studio(并检查Git).在部署之前(我们目前也使用模式比较)我们必须替换数据库和服务器引用(使用[$(数据库)]等).如果我们更改开发服务器中的代码并再次进行比较,则此类SQLCMD变量将再次丢失.(我希望模式比较足够聪明以保留SQLCMD变量,但我发现无法实现这一点).
合乎逻辑的步骤是从一开始就在visual studio中开发sql.但到目前为止,很难说服团队中的任何人这样做.一个人可以编写sql并在VS中执行它,没问题.也可以切换到SQLCMD模式并执行.但是当您在VS中创建例如一个视图时,您必须写下一个create语句,当然这可以执行一次,但在更改视图并再次执行create语句时会产生错误.
所以我的问题是,是否有人提供了一些关于如何在Visual Studio中进行数据库开发的基本技巧.我们能够获得数据库引用和所有这些,但不是开发过程.
几年来,我一直在使用Visual Studio数据库项目简化本地数据库开发和部署.这里有一些提示.
一般来说...
使用本地数据库实例:每个开发人员都应在本地安装自己的数据库实例.应在Visual Studio中开发所有脚本(表,视图,存储过程等).创建发布配置文件以将项目部署到本地数据库实例.
使用发布功能:令人困惑的Visual Studio提供了Deploy和Publish选项,它们最终会执行相同的操作.我建议只使用Publish,因为它在UI中更为突出,您可以创建配置文件来配置各种数据库实例的部署过程.
使本地数据库保持最新:当开发人员对数据库项目进行更改并将其检入源代码控制时,其他开发人员应检查这些更改并将项目重新发布到其本地数据库.
Create vs. Alter语句
您的所有语句都应该是Create语句.不需要Alter语句或存在检查.所有内容都应该编写脚本,就像您是第一次创建数据库对象一样.部署或发布时,VS将知道是否为现有对象发出Alter语句.
数据
一些想法:
将数据编写为一系列Insert语句.将它们包含在数据库项目的部署后脚本中.但这可能是乏味且容易出错的.
保留包含所有测试数据的数据库备份.首次设置开发环境时,请从备份创建数据库.在对数据进行重大更改后,创建新备份并让您的开发人员从备份中重新创建其数据库.在大多数情况下,如果备份与项目中定义的模式不同步,则可以 - 只需重新发布项目(确保关闭"重新创建数据库"设置,以便仅发布差异,从而发布数据没有丢失).
可能有第三方工具来执行此操作,在这种情况下,他们值得查看.
创建自己的部署数据解决方案.我参与以下工作非常好(但需要大量的时间和精力!):
测试/生产部署
发布功能:您可以为测试和生产环境创建发布配置文件.但是,它将包括您的部署前和部署后脚本,并且您将无法获得其他选项提供的多功能性.
dacpacs: Ed Elliott在他的回答中涵盖了他们.优点:无需部署Visual Studio,可以通过SQL Management Studio或sqlpackage.exe命令行进行部署,它们比T-SQL部署脚本更易于使用.
架构比较:如果可以将Visual Studio用于部署,并且想要仔细检查所部署的所有更改,则架构比较可能会很好.您还可以选择性地忽略当您没有足够幸运拥有完全反映生产的开发环境时有用的更改.
| 归档时间: |
|
| 查看次数: |
1575 次 |
| 最近记录: |