Spring Boot和MySQL。试图让我的Spring Boot应用程序使用Liquibase进行数据库迁移,并在文档中看到Spring Boot has built-in support for Liquibase。
然而,在阅读这些文档之后,我留下了几个相关的问题:
db/changelog/db.changelog-master.yaml
文件的基本用途是什么?它是存储Liquibase配置(指示Liquibase的行为),还是我应该将实际的顺序SQL更改(“迁移”)本身放在哪里?
src/main/resources/migrations
目录并将我的迁移更改存储为单独的SQL文件,如下所示:src/main/resources/migrations/001-schema.sql
src/main/resources/migrations/002-init.sql
src/main/resources/migrations/003-changing-account-types.sql
答案 0 :(得分:7)
db/changelog/db.changelog-master.yaml
文件是在使用默认配置时在应用程序启动时执行的文件。在该文件中,您可以进行顺序SQL更改以及对其他文件的包含。例如,该文件可能包含这样的包含(xml语法)
<include file="migrations/001-schema.sql"/>
<include file="migrations/002-init.sql"/>
<include file="migrations/003-changing-account-types.sql"/>
您可以获得所需的配置。
关于你的第二个问题 - 是的,它们是在启动时应用的。如果它在一组节点上运行,它们将分别检查状态并将更改应用于数据库(如果它们尚未应用)(数据库交换日志和数据库交换表用于此目的,并确保更改仅应用一次)
yaml语法的示例
databaseChangeLog:
- include:
file: migrations/001-schema.sql
- include:
file: migrations/002-init.sql
- include:
file: migrations/003-changing-account-types.sql