configure dataSource for liquibase in spring boot

China☆狼群 提交于 2019-11-29 06:51:34

Here's a simple step to integrate liquibase in spring boot

STEP 1

Add liquibase dependency

Gradle

runtime "org.liquibase:liquibase-core"

Maven

<dependency>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-core</artifactId>
    <scope>runtime</scope>
</dependency>

STEP 2

Add liquibase changelog file path in application.yml

liquibase:
  enabled: true #this is optional as enabled by default
  change-log: classpath:/liquibase/db-changelog.xml

Notice property liquibase.change-log. I'm referring path as /liquibase/db-changelog.xml. so you should have a file name db-changelog.xml inside src/main/resources/liquibase/

STEP 3

Add your changesets on the file and when Spring-Boot application is started (spring-boot:run) your changeset will be loaded.

This will use default dataSource that your app uses.

More Info: http://docs.spring.io/spring-boot/docs/1.4.3.RELEASE/reference/htmlsingle/#howto-execute-liquibase-database-migrations-on-startup

Update

For Spring Boot 2.0 as @veben pointed out in comment use

spring:
    liquibase:
        change-log: #path

I had a similar construct for my application, have you tried injecting a more generic javax.sql.DataSource instead?

My guess is that Spring uses the non-specific type for this bean, on top of that you shouldn't even use a database-specific type if your application could be configured to use a totally different source, i.e. by just changing the datasource URL in the configuration file.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!