> For the complete documentation index, see [llms.txt](https://jack80342.gitbook.io/spring-boot/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jack80342.gitbook.io/spring-boot/ix.-how-to-guides/80.-database-initialization/80.5-use-a-higher-level-database-migration-tool/80.5.2-execute-liquibase-database-migrations-on-startup.md).

# 80.5.2 启动时执行Liquibase数据库迁移

想要在启动时自动运行Liquibase数据库迁移，你需要将`org.liquibase:liquibase-core`添加到classpath下。

默认从`db/changelog/db.changelog-master.yaml`读取master变化日志。你可以设置`spring.liquibase.change-log`改变位置。除了YAML，Liquibase还支持JSON、XML和SQL改变日志格式。

默认情况下Liquibase将会在你的上下文中自动装配（`@Primary`）`数据源`，并使用此数据源进行迁移。如果你想要使用一个不同的`数据源`，你可以创建一个并把它的`@Bean`作为`@LiquibaseDataSource`标记。如果你那样做了，并且你还想要创建两个数据源，记得创建另外一个，并把它标记为`@Primary`。或者你可以通过在外部属性里设置`spring.liquibase.[url,user,password]`，使用Liquibase的本地`数据源`。设置`spring.flyway.url`或`spring.flyway.user`足以导致Liquibase使用自己的`数据源`。如果没有设置这三个属性中的任何一个，则将使用与其等效的`spring.datasource`属性的值。

更多的像上下文、默认的模式之类的细节，请查看[LiquibaseProperties](https://github.com/spring-projects/spring-boot/tree/v2.0.0.RELEASE/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/liquibase/LiquibaseProperties.java)。

这里有个[Liquibase示例](https://github.com/spring-projects/spring-boot/tree/v2.0.0.RELEASE/spring-boot-samples/spring-boot-sample-liquibase)可作为参考。
