由于@SteveDonie的评论,我找到了基于4个步骤的解决方案:
-
切换到其他数据库(例如master)
-
发布的用法
CleanDB
;
-
将备份应用于
清洁DB
-
恢复使用并从主服务器切换回
清洁DB
.
因此,下一个代码对我有效:
<sql splitStatements="true">
use master; <!-- switch to master -->
<!-- avoid error that CleanDB already in use -->
alter database ${databaseName}
set single_user with rollback immediate;
<!-- apply backup -->
RESTORE DATABASE CleanDB
FROM DISK = '\\SomePublic\DevDB.bak'
WITH REPLACE;
<!-- Restore access to database -->
alter database ${databaseName}
set multi_user;
<!-- switch back for further Liquibase operations -->
use ${databaseName};
</sql>