简化了SSDT数据库项目到localdb的部署

时间:2015-08-17 22:52:08

标签: sql-server-data-tools database-project

如果您在VS 2015中将SSDT数据库项目设置为启动项目,则在您按F5时执行构建和部署

========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ========== ========== Deploy: 1 succeeded, 0 failed, 0 skipped ==========

这与“发布...”命令不同,因为它不会引导您完成发布对话框。它只是自动部署到localdb实例(通过项目的Debug配置指向。

我经常需要将数据库部署到localdb,以便我可以针对它运行代码生成工具,而不是运行整个解决方案(有其他应用程序,即我不想通过F5运行)。

所以我想要做的是确定是否有一个项目级别的建议,我可以添加到我的工具栏中,除了F5的Start Debug命令之外,这个自动无对话框部署到localdb。我正在查看“添加命令”对话框(右键单击工具栏 - >自定义),还可以通过键盘自定义选项查看SSDT。*命令。

有没有人知道是否只有一个数据库项目Build + Deploy或Deploy的命令,它会自动执行吗? (同样,“发布...”命令不是我正在寻找的,因为它不会像上面那样自动部署)

2 个答案:

答案 0 :(得分:4)

我用不同的方式来做这件事,我摇摆的两种方法是:

  1. 使用powershell脚本调用sqlpackage.exe来部署dacpac。正常构建项目(ctrl + shift + b)然后alt选项卡到powershell并运行最后一个命令(部署脚本)

  2. 使用StudioShell(https://studioshell.codeplex.com/)创建一个visual studio命令来执行构建然后部署,然后可以映射

  3. (2)更接近你想要的但我个人更喜欢(1),因为它更简单。使用(1)的好处是:

    • 该脚本与我在CI,QA,Prod等中使用的脚本相同,用于部署dacpac,这意味着我测试了很多(和很多)
    • 我很容易看到任何错误和警告,并且可以随时关注重新部署对象,以便我可以解决问题,而不是不注意并且部署时间越来越长

    我看到类似这样的问题很多,所以我想我会正确地写下我的想法:https://the.agilesql.club/blog/Ed-Elliott/Visual-Studio-SSDT-Publish-My-Personal-Best-Practices

    无论你做什么(这个或其他什么)跟进你的经历,我(至少!)会发现它很有趣!

答案 1 :(得分:1)

我找到了两种选择:

  1. 右键单击解决方案,选择“启动项目”,“多个启动项目”,然后使数据库项目成为其中之一。

  2. 右键单击解决方案,选择“项目依赖项”,然后使数据库项目成为将要构建的其他项目之一的依赖项。