为啥flyway迁移需要JPA依赖才能运行
Posted
技术标签:
【中文标题】为啥flyway迁移需要JPA依赖才能运行【英文标题】:why is JPA dependency needed for flyway migrations to run为什么flyway迁移需要JPA依赖才能运行 【发布时间】:2017-09-17 10:07:57 【问题描述】:你好, 我是 Spring Boot gradle Project 的新手。我正在尝试使用 Spring Boot 应用程序运行 Flyway 迁移。这就是我在 gradle 中设置依赖项的方式,
首先,我将依赖项添加为,
org.springframework.boot:spring-boot-starter-web
。这足以暴露一个终点。
然后我尝试在gradle中添加flyway依赖,org.flywaydb:flyway-core:4.0
,它既没有抛出错误也没有运行迁移脚本,直到我添加了依赖org.springframework.boot:spring-boot-starter-data-jpa:1.3.5.RELEASE
。在查看了 data-jpa jar 的 pom.xml 之后,我发现这个 jar 的依赖项也有休眠包org.springframework.boot:spring-boot-starter-web
。所以我删除了添加的第一个依赖项 jar。但服务启动失败。我的疑问是:
1) 应该添加 JPA 库以运行 flyway 脚本的必要性是什么
2)如果 org.springframework.boot:spring-boot-starter-web
是 jar org.springframework.boot:spring-boot-starter-data-jpa:1.3.5.RELEASE
的依赖项,我为什么要再添加一次
【问题讨论】:
【参考方案1】:使用 Flyway 自然意味着处理某种数据源,否则在您的项目中添加数据库迁移库有什么意义?
当您添加 Flyway 依赖项时,默认情况下 Spring Boot 会自动将 Flyway 与其数据源自动关联,并在启动时按照 the documentation 调用它。
因此需要一个 JPA 库。
【讨论】:
以上是关于为啥flyway迁移需要JPA依赖才能运行的主要内容,如果未能解决你的问题,请参考以下文章
Spring Data JPA / Flyway 转义双引号