我有一个 SpringBoot 应用程序在 Liberty 上运行,使用 flyway 并使用文件系统:在本地引用 db/migration 文件。 对于我们部署的环境,我更愿意将文件保存在生成的战争中,而不是在服务器文件夹中并直接指定。 当我尝试使用classpath:db/migration时,我得到以下结果:
2017-06-21 13:50:20.494 INFO 2600 --- [ecutor-thread-3] o.f.core.internal.util.VersionPrinter : Flyway 4.2.0 by Boxfuse
2017-06-21 13:50:21.521 INFO 2600 --- [ecutor-thread-3] o.f.c.i.dbsupport.DbSupportFactory : Database: jdbc:db2://devserver:12345/dev_database(DB2/AIX64 10.5)
2017-06-21 13:50:21.724 WARN 2600 --- [ecutor-thread-3] o.f.c.i.u.s.classpath.ClassPathScanner : Unable to resolve location classpath:db/migration (ClassLoader: com.ibm.ws.classloading.internal.ThreadContextClassLoader@bdac658) On WebSphere an empty file named flyway.location must be present on the classpath location for WebSphere to find it!
2017-06-21 13:50:21.725 WARN 2600 --- [ecutor-thread-3] o.f.c.i.u.s.classpath.ClassPathScanner : Unable to resolve location classpath:db/migration
2017-06-21 13:50:22.170 WARN 2600 --- [ecutor-thread-3] o.f.c.i.u.s.classpath.ClassPathScanner : Unable to resolve location classpath:db/migration
2017-06-21 13:50:22.171 WARN 2600 --- [ecutor-thread-3] o.f.c.i.u.s.classpath.ClassPathScanner : Unable to resolve location classpath:db/migration
2017-06-21 13:50:22.176 WARN 2600 --- [ecutor-thread-3] o.f.c.i.u.s.classpath.ClassPathScanner : Unable to resolve location classpath:db/migration
2017-06-21 13:50:22.180 WARN 2600 --- [ecutor-thread-3] o.f.c.i.u.s.classpath.ClassPathScanner : Unable to resolve location classpath:db/migration
2017-06-21 13:50:22.429 INFO 2600 --- [ecutor-thread-3] o.f.core.internal.command.DbValidate : Successfully validated 2 migrations (execution time 00:00.334s)
2017-06-21 13:50:23.270 INFO 2600 --- [ecutor-thread-3] o.f.core.internal.command.DbMigrate : Current version of schema "DEVSCHEMA": 2
2017-06-21 13:50:23.271 WARN 2600 --- [ecutor-thread-3] o.f.core.internal.command.DbMigrate : Schema "DEVSCHEMA" has a version (2) that is newer than the latest available migration (1) !
2017-06-21 13:50:23.307 INFO 2600 --- [ecutor-thread-3] o.f.core.internal.command.DbMigrate : Schema "DEVSCHEMA" is up to date. No migration necessary.
将应用程序连接到 Liberty 配置文件上的数据库/迁移文件夹的正确方法是什么? 我已经把一个空的 Flyway.Location 文件推到我的 Liberty 文件夹中,但无济于事。
这是 Liberty 17.0.0.1、Spring-Boot 1.5.2 和 Flyway-Core 4.2.0。
解决方案在日志中给出,您需要添加一个空文件 flyway.position in db/flyway