我试图将Flyway设置为使用Spring JPA。我坚持:
Error creating bean with name 'org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$FlywayConfiguration': Invocation of init method failed; nested exception is java.lang.IllegalArgu: name
堆栈跟踪并没有给我更多的工作机会。我有一个以前的数据库,其中许多实体都有name
列。我猜测Flyway在提取现有数据库模式时遇到了一些麻烦?我看过Spring,Spring Boot和Flyway文档,但是找不到任何东西。
我有一个PostgreSQL数据库。以下是我pom.xml
的相关依赖项:
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.2-1002.jdbc4</version>
</dependency>
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>4.0.3</version>
</dependency>
这是我在application.properties中的Flyway配置:
flyway.baseline-version=1
flyway.baseline-on-migrate=true
flyway.check-location=true
flyway.locations=${MIGPATH}
我认为位置是正确的,因为我之前遇到了错误,在修复之后,错误消息发生了变化。它是指向一个名为V1__f.sql
的文件的文件夹的路径 - 以下是其内容:
ALTER TABLE category ADD hidden boolean NOT NULL;
ALTER TABLE expense ADD details VARCHAR(256);
由于错误与name
有关,而我的迁移并不关心该字段,因此我猜测此错误不是由迁移文件的内容引起的。在任何情况下,我都认为迁移文件的内容是正确的(我之前存在的数据库+那2个更改应该与我的JPA实体定义隐式定义的模式兼容)。