我们有两个数据库项目,x和x_audit.x有参考x_audit.
x_audit部署很好,但在尝试部署时x我们得到错误:
The reference to external elements from the source named x_audit.dbschema could not be resolved, because no such source is loaded.
相同的文件可以很好地部署到2005数据库,我们只在部署到2008时遇到此错误.如果它有任何区别,这是升级现有数据库而不是创建新数据库.它曾经在2005年和2008年都运作良好,不知道发生了什么变化.
谢谢
使用vsdbcmd部署我的数据库时:
vsdbcmd.exe /a:Deploy /manifest:MyDatabase.deploymanifest
Run Code Online (Sandbox Code Playgroud)
我得到:
SQL01268 .Net SqlClient Data Provider: Msg 50000, Level 16, State 127, Line 6 Rows were detected. The schema update is terminating because data loss might occur.
SQL01268 An error occurred while the batch was being executed.
这是很好的,但它并没有告诉我那里的dataloss会发生.为了找出我必须使用的<DeployToScript>True</DeployToScript>,然后加载脚本以查看:
IF EXISTS (select top 1 1 from [dbo].[MyTable])
RAISERROR ('Rows were detected. The schema update is terminating because data loss might occur.', 16, 127) WITH NOWAIT
有没有办法让vsdbcmd在直接部署到DB而不必先生成sql时显示此信息?
谢谢
对"vsdbcmd两个数据库差异"进行Google/Bing搜索并没有向我显示任何明确的内容.我只是在同一台服务器上有两个数据库,我想对它们进行区分,然后应用来自A-> B的模式差异.就像我在VS2010 GUI中所做的那样.
任何人都能指出我正确的方向吗?
谢谢.
我目前正在使用Microsoft Web部署技术(msbuild和msdeploy命令)将网站部署到服务器.该网站需要部署数据库,两者都在同一台服务器上.我正在寻找部署数据库项目(使用命令行)的最佳解决方案,我想更好地了解有关数据库部署的所有技术.
解决方案的内容(Visual Studio 2013):
注意:我没有自愿使用VS中的持续集成/交付工具或发布方法.我这个项目的第一个目标是了解msbuild/msdeploy如何工作......
我看了一下vsdbcmd命令,它似乎做了我想要的所有步骤......除了我需要将Visual Studio DLLs /文件导入我的远程服务器,我想知道是否有更好的方法......我也看了在msdeploy提供程序dbSqlPackage/dbDacFx,但据我所知,它使用dacpac来应用架构更改.同样,SqlPackage.exe似乎也使用dacpac.
使用dacpac听起来不错,但我对以下问题感到困惑:
是否有其他方法可以从命令行以及您的经验和项目进行部署,部署此类项目的最佳方式是什么?
非常感谢,