我真的在为管理基于 Visual Studio 2010 数据库项目的 SQL Azure 数据库的最佳方法而苦苦挣扎。我认为使用 VSDBCMD 创建用于升级的差异脚本然后在 SSMS 中简单地针对 SQL Azure 运行会很容易。但是,我得到了可怕的“无法确定目标数据库模式提供程序。部署无法继续。” 错误。
在这一点上,我只是假设 SQL Azure 不支持 VSDBCMD 中的某些东西,反之亦然,我正在研究其他方法。这是我目前正在考虑的方法:
- 使用 Azure 数据库引擎设置从 SSMS 编写我的 SQL Azure 数据库脚本。
- 从步骤 1 中的脚本创建临时本地数据库。
- 从步骤 2 开始,使用 VSDBCMD 针对本地数据库创建我的增量脚本。
- 查看/修改步骤 3 中的脚本。
- 在 SSMS 中针对 SQL Azure 运行步骤 3/4 中的脚本。
好坏?还有其他想法吗?
编辑:我今天更新到 Visual Studio 2010 SP1,发现 Microsoft.Data.Schema.Sql.dll 中有一个新的数据库架构提供程序:SqlAzureDatabaseSchemaProvider。但是,我无法确定如何实际使用这个坏男孩。现在,当我对 Azure 数据库尝试相同的 VSDBCMD 脚本时,我得到:
无法将源数据库架构提供程序 Sql100DatabaseSchemaProvider 转换为提供程序 SqlAzureDatabaseSchemaProvider。部署无法继续。
我还尝试使用具有相同结果的 Sql90 提供程序。我什至手动编辑了 dbproj 文件并将 DSP 属性更改为 SqlAzureDatabaseSchemaProvider。当我重新加载项目时,我得到:
数据库模式提供者必须提供 DataGenerationServices 的实现。
有没有人用 VS 2010 SP1 试过这个?