1

Visual Studio (2010) gui 提供了用于为目标指定第二个命令变量文件的选项。但是,我找不到用于命令行实现的此选项 - vsdbcmd.exe。

运行 vsdbcmd deploy for dbschema 到 dbschema,只使用源模型命令变量,给出实现变量的对象被视为具有更改的结果。导致不正确(不正确)的更新脚本。

我目前使用的命令:

vsdbcmd.exe /a:deploy /dd:- /dsp:sql /model:Source.dbschema /targetmodelfile:Target.dbschema /p:SqlCommandVariablesFile=Database.sqlcmdvars /manifest:Database.deploymanifest /DeploymentScriptFile:UpdateScript.sql /p:TargetDatabase="DatabaseName" 

我正在寻找的是/p:TargetSqlCommandVariablesFile,如果这样的事情存在......

结果脚本与运行相同,因此 GUI 比较无需为目标指定 sqlcmd vars

4

2 回答 2

1

VSDBCMD.EXE我在这个链接上找到了完整的文档。

我想你可能正在寻找类似的东西:

/p:SqlCommandVariablesFile=Filepath
于 2013-03-27T22:17:17.873 回答
0

最后,我没有找到有关执行所需操作的可能性的信息-使用 IL spy 检查了 vsdbcmd 库中的隐藏参数-没有找到任何信息。

通过解析目标和当前的 dbschema 文件并将 cmd 变量值直接解析到它们中来达到我的目标 - 然后对修改后的 dbschema 进行比较。这种方法不再允许在生成的脚本中更改 sql cmd vars(因为这些值已经被烘焙到代码中),但是这被认为是可以接受的损失。

不是最漂亮的解决方案,但到目前为止我没有任何问题。

于 2013-01-15T14:33:06.443 回答