我正在运行安装了 SSDT(SQL Server Data Tools)的 SQL Server 2012 和 VS 2010。我的开发数据库使用存储过程、函数、CLR 对象等。它有大约 500GB 的生产数据快照。
我创建了 SQL Server 数据库项目,然后导入了数据库。这将在模式名称下创建所有表、视图、过程和函数文件。很棒的东西——现在我可以像在其他 VS 项目中一样进行版本控制、创建部署等。到目前为止,一切都很好。
但是,我对在 SQL Server 数据库项目下更改/添加过程/表的开发过程应该是什么感到困惑。看来我所做的任何更改都会应用于某些 LocalDb/Projects 数据库,而不是我的开发数据库。
我是否应该在 LocalDb 中创作所有对象,然后通过发布构建并部署到我的开发数据库?我担心开发数据库中现有的表,因为如果发布过程删除并重新创建表,我将丢失我的产品数据快照。
SQL Server 数据库项目中应遵循的正确开发流程是什么?
将源数据库(在您的情况下,您的数据库项目)视为部署后的“待”状态。启动部署时,可执行文件 (SqlPackage.exe) 会将源与目标进行比较,并生成差异/增量脚本以使目标看起来像源。这就是为什么我们不再需要指定CREATE
or ALTER
;该工具可以解决这个问题。要回答有关持续开发的问题,您可以采用任何一种方式进行开发。您可以在项目文件中进行开发并将它们发布到公共开发数据库(例如,如果您在一个团队中),或者您可以使用 SQL Server Management Studio (SSMS) 等工具在数据库中进行开发并与项目文件同步与模式比较(我使用后一种技术,因为我喜欢 SSMS)。
对于部署,您必须在执行部署的计算机上安装 SSDT(SSDT 随 SQL Server 2012 及更高版本提供;我不了解 SQL Server 2008)。您可以创建脚本来简化部署。您实际上将使用操作和源来调用 SqlPackage.exe(它位于 x:\Program Files (x86)\Microsoft SQL Server\nnn\DAC\bin 中)。我还使用发布配置文件来处理大多数命令属性。因此,示例部署可能如下所示:
SqlPackage.exe /Action:Publish /SourceFile:MyDatabase.dacpac /Profile:MyProfile.publish.xml
了解更多信息:
SQL Server 数据工具文档http://msdn.microsoft.com/en-us/library/hh272686(v=vs.103).aspx http://msdn.microsoft.com/en-us/library/hh272686(v=vs.103).aspx
SqlPackage.exe 文档http://msdn.microsoft.com/en-us/library/hh550080(v=vs.103).aspx http://msdn.microsoft.com/en-us/library/hh550080(v=vs.103).aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)