我真的很苦恼用管理基于Visual Studio 2010数据库项目的SQL Azure数据库的最佳方法。我认为使用VSDBCMD创建差异脚本进行升级很容易,然后只需在SSMS中针对SQL Azure运行即可。但是,我得到了可怕的“目标数据库模式提供程序无法确定,部署无法继续。”错误。Visual Studio数据库项目和SQL Azure
在这一点上,我只是假设SQL Azure不支持VSDBCMD中的某些东西,反之亦然,我正在寻找其他方法。以下是我目前正在考虑的方法:
- 使用Azure数据库引擎设置从SSMS对我的SQL Azure数据库进行脚本编写。
- 从脚本在步骤1中创建tempory本地数据库
- 使用VSDBCMD从步骤针对本地数据库中创建我的三角洲脚本2.
- 评论/从第3步
- 从运行脚本修改脚本步骤3/4针对SSMS中的SQL Azure。
好,坏?任何其他想法?
编辑:我今天更新到Visual Studio 2010 SP1,发现Microsoft.Data.Schema.Sql.dll中有一个新的数据库模式提供程序:SqlAzureDatabaseSchemaProvider。但是,我无法确定如何真正使用这个坏男孩。现在,当我尝试同样的VSDBCMD脚本针对Azure数据库,我得到:
源数据库架构提供Sql100DatabaseSchemaProvider无法转换为供应商SqlAzureDatabaseSchemaProvider。部署无法继续。
我也尝试过使用Sql90提供程序,结果相同。我甚至手动编辑了dbproj文件并将DSP属性更改为SqlAzureDatabaseSchemaProvider。当我重新加载项目时,我得到:
数据库模式提供程序必须提供DataGenerationServices的实现。
有没有人试过VS 2010 SP1?
+1这一建议 - 这是一个伟大的工具,可以运行作为用户界面或命令行。 – Stuart 2011-03-24 20:05:05
源代码也可用 - 所以如果你愿意的话,你应该可以适应它的变化。 – Stuart 2011-03-24 20:05:51