我使用以下属性配置了Liquibase和spring引导:
spring:
liquibase:
change-log: classpath:/db/changelog/db.changelog-master.yml
enabled: truedatabaseChangeLog:
- include:
file: db/changelog/release-01/master.yml
- include:
file: db/changelog/release-02/master.ymldatabaseChangeLog:
- changeSet:
id: 1
author: Prabal Srivastava
logicalFilePath: release-02-01__t_user_table.sql
context: User
labels: InitialCommit
comment: Initial changes for user table
changes:
- sqlFile:
path: 01__t_user_table.sql
relativeToChangelogFile: true
- tagDatabase:
tag: 0.0.2
rollback:
- sqlFile:
path: rollback/01__t_user_table.sql
relativeToChangelogFile: true
- changeSet:
id: 2
author: Prabal Srivastava
logicalFilePath: release-02-02__t_group_table.sql
context: Entry
labels: InitialCommit
comment: Initial changes for group table
changes:
- sqlFile:
path: 02__t_group_table.sql
relativeToChangelogFile: true
- tagDatabase:
tag: 0.0.2
rollback:
- sqlFile:
path: rollback/02__t_group_table.sql
relativeToChangelogFile: true接受:如果没有在release-02中应用任何脚本,那么这个release-02/master.yml中的所有changeSet都应该回滚。
当前:,如果02__t_group_table.sql下降,那么只有组脚本正在回滚,但是用户脚本不会回滚。
我想要的解决方案是,如果将暂存环境应用程序升级到生产环境,并且在生产时进行Liquibase迁移时,某些东西会失败,那么该版本中的任何changeSet都不适用。
发布于 2020-05-26 20:55:32
对于您的release-02/master.yml脚本,如果您想回滚changeLog中的所有changeSets“Release-02/ better .yaml”,那么我认为最好只有一个changeSet (第一个changeSet),其中包含要回滚结束点的tagDatabase回滚标记。然后在下面的changeSets中删除包含相同标记的其他tagDatabase属性。
请考虑以下例子:
databaseChangeLog:
- changeSet:
id: release-0.0.2
author: Prabal Srivastava
changes:
- tagDatabase:
tag: 0.0.2
- changeSet:
id: 1
author: Prabal Srivastava
logicalFilePath: release-02-01__t_user_table.sql
context: User
labels: InitialCommit
comment: Initial changes for user table
changes:
- sqlFile:
path: 01__t_user_table.sql
relativeToChangelogFile: true
rollback:
- sqlFile:
path: rollback/01__t_user_table.sql
relativeToChangelogFile: true
- changeSet:
id: 2
author: Prabal Srivastava
logicalFilePath: release-02-02__t_group_table.sql
context: Entry
labels: InitialCommit
comment: Initial changes for group table
changes:
- sqlFile:
path: 02__t_group_table.sql
relativeToChangelogFile: true
rollback:
- sqlFile:
path: rollback/02__t_group_table.sql
relativeToChangelogFile: true要在这个changeLog上运行回滚,只需运行:对于Liquibase插件命令:
mvn liquibase:rollback -Dliquibase.rollbackTag=0.0.2对于Liquibase CLI命令,可以运行:
liquibase rollback 0.0.2https://stackoverflow.com/questions/61982820
复制相似问题