如何在 TFS 中使用命令行任务在发布期间备份 SQL 数据库?
Posted
技术标签:
【中文标题】如何在 TFS 中使用命令行任务在发布期间备份 SQL 数据库?【英文标题】:How do you backup a SQL Database during release in TFS using command line task? 【发布时间】:2018-06-22 02:54:00 【问题描述】:我希望在我的 TFS 版本中使用命令行任务备份 SQL 数据库,如下所示:
工具:SqlCmd
参数:-U 用户名 -P 密码 -S sqlserver\instance -Q "BACKUP DATABASE [ mydatabase] TO DISK='X:\SomePath\mydatabase.bak' WITH COPY_ONLY"
如果我复制/粘贴并在命令窗口中运行,则输出到 TFS 日志的结果命令有效。
但由于某种原因,TFS 在尝试执行命令时会抛出错误。
这是日志信息:
2018-06-22T02:45:02.1384055Z ##[command]SqlCmd -U 用户名 -P 密码 -S sqlserver\instance -Q "备份数据库 [mydatabase] TO DISK='X:\SomePath\mydatabase.bak ' WITH COPY_ONLY"
2018-06-22T02:45:02.2009053Z Sqlcmd: '-Q "备份数据库 [ABS-dev] TO DISK='D:\SQLBACKUP\ABS-dev_Release.bak' WITH COPY_ONLY':意外 争论。进入 '-?'求助。 2018-06-22T02:45:02.2634060Z
[错误]进程已完成,退出代码为 1。
我想知道是否有线索表明指示错误的行没有用双引号终止,并且尝试了诸如在查询段周围添加额外的双引号之类的方法,但到目前为止还没有运气。
有什么想法吗?
【问题讨论】:
您使用的是哪个版本的 TFS?您的构建代理是否在 Windows 机器上运行? 【参考方案1】:您可以尝试下面的参数,使用/Q
而不是-Q
:
-U username -P password -S sqlserver\instance /Q "BACKUP DATABASE [mydatabase] TO DISK='X:\SomePath\mydatabase.bak' WITH COPY_ONLY"
【讨论】:
以上是关于如何在 TFS 中使用命令行任务在发布期间备份 SQL 数据库?的主要内容,如果未能解决你的问题,请参考以下文章