Spring Boot & Liquibase 示例
Spring Boot & Liquibase by Example
Spring 引导和 MySQL 这里。试图让我的 Spring Boot 应用程序使用 Liquibase 进行我的数据库迁移,并在文档中看到 Spring Boot has built-in support for Liquibase.
但是在阅读了这些文档之后,我有几个相关的问题:
db/changelog/db.changelog-master.yaml
文件的基本用途是什么?它是存储 Liquibase 配置(决定 Liquibase 的行为方式),还是我应该将实际的、顺序的 SQL 更改(“migrations”)放在哪里他们自己?
- 理想情况下,我想要一个
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
- ...等是否可以通过 Spring 引导配置 Liquibase 来执行此操作?
- 何时 Spring 启动 运行 这些 Liquibase 迁移?在应用程序启动时?如果 Spring 引导应用程序实际上 运行 在节点集群上(比如负载平衡 URL 后面的 5 个节点)怎么办? Spring Boot 运行 Liquibase 运行 5 次,每个节点一次?或者它是否以某种方式感觉到一个节点是“master migrator”等?
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
Spring 引导和 MySQL 这里。试图让我的 Spring Boot 应用程序使用 Liquibase 进行我的数据库迁移,并在文档中看到 Spring Boot has built-in support for Liquibase.
但是在阅读了这些文档之后,我有几个相关的问题:
db/changelog/db.changelog-master.yaml
文件的基本用途是什么?它是存储 Liquibase 配置(决定 Liquibase 的行为方式),还是我应该将实际的、顺序的 SQL 更改(“migrations”)放在哪里他们自己?- 理想情况下,我想要一个
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
- ...等是否可以通过 Spring 引导配置 Liquibase 来执行此操作?
- 理想情况下,我想要一个
- 何时 Spring 启动 运行 这些 Liquibase 迁移?在应用程序启动时?如果 Spring 引导应用程序实际上 运行 在节点集群上(比如负载平衡 URL 后面的 5 个节点)怎么办? Spring Boot 运行 Liquibase 运行 5 次,每个节点一次?或者它是否以某种方式感觉到一个节点是“master migrator”等?
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