Visual Studio数据库项目不会部署到SQL Azure

问题描述:

我遇到了非常类似于this的问题。我有一个.dbproj Visual Studio数据库项目。它在SQL Server Express中部署得很好。现在我想将它部署到SQL Azure的 - 我改变连接参数,但部署失败,出现以下文字:Visual Studio数据库项目不会部署到SQL Azure

C:\ Program Files文件\的MSBuild \微软\ VisualStudio的\ V10.0 \ TeamData \ Microsoft.Data .Schema.TSqlTask​​s.targets(120,5):错误Deploy:无法确定目标数据库模式提供程序。部署无法继续。 完成执行任务“SqlDeployTask” - 失败。

是否将.dbproj项目部署到SQL Azure支持?如何让Visual Studio将数据库部署到SQL Azure中?除了使用Azure门户手动重新创建数据库之外,还有哪些其他方法可以获得或多或少的相同结果?

据我所知,Windows Azure仍不支持数据库项目。您可以将项目部署到本地SQL服务器,然后使用“生成脚本”功能将数据库移植到SQL Azure。看到这个link

+3

现在它们在VS2012中受支持。检查我的答案。 – whihathac

一个简单的解决方案是在本地创建数据库并使用SQL Azure Migration Wizard执行到SQL Azure的迁移。它只需点击几下即可运行(并且可以解决常见错误)。

+0

如果您使用SQL 2008 R2,则不再需要SQL Azure迁移向导。现在完全支持生成Azure支持的脚本。 –

+0

SQL 2008 R2不部署数据。向导确实如此。还修复了常见错误或提供了为什么它不起作用的信息。 –

数据库项目不适用于SQL Azure。我所做的是在部署之前,在本地服务器上创建一个全新的数据库(以确保它是最新的,没有开发脚本),然后使用RedGate SQL Compare将该数据库同步到Azure。我首先使用RedGate SQL Azure备份进行备份。

当我们第一次构建数据库项目时,SQLAzure仍然在经历它的身份危机并且不知道它想做什么。 ;)

DBProjects支持功能与SQLAzure的显着超集。因此,它很可能会创建不会针对SQLAzure运行的脚本。

我知道接管DBProject工具的团队正在考虑限制数据库项目生成器输出与SQLAzure兼容的脚本,但我不知道他们得到了多少或是否决定继续。

我回应dunnry的建议,使用SQL Azure Migration Wizard或Jeremy's并使用SQL 2008 R2并生成Azure兼容脚本。

+0

虽然DBProjects团队在其中,但他们还可以添加生成可复制到SSMS并运行的脚本的功能,而不是依靠VS部署。然后,DBProjects对于部署将是一半有用的。 – Craig

+0

使用SQL Azure迁移向导适用于手动过程,但在自动化构建和部署中如何最好地执行此操作?我无法编写该向导的脚本,我可以吗? – ryancrawcour

如果您使用的是Visual Studio 2012,现在可以创建一个数据库项目,然后转到“属性” - 在“项目设置”选项卡中将其目标平台设置为SQL Azure。您也可以配置dacpac输出的设置。使用此文件作为新的SQL Azure数据库直接导入。