我想运行一些 Flyway 脚本来设置我的数据库以进行集成测试。
我在 src/test/resources/db/migration 处有一个 Flyway 脚本 V1-XXX,加载应用程序上下文后,我正在同一位置复制另一个文件 V2-XXXX。然后我使用以下代码来迁移这两个脚本。仅迁移第一个脚本。有人可以告诉我如何成功迁移这两个脚本吗?
Flyway flyway = Flyway.configure()
.dataSource("jdbcUrl",
"username",
"password").load();
flyway.migrate();
我正在使用的flyway版本:
compile "org.flywaydb:flyway-core:5.2.4"
我添加了以下代码来获取待处理的迁移信息:
flyway.setLocations("filesystem:src/test/resources/db/migration");
MigrationInfoService migrationInfoService = flyway.info();
MigrationInfo[] migrationInfos = migrationInfoService.pending();
flyway.migrate();
我看到以下日志:
2019-07-22 16:07:27.046 INFO 46406 --- [ main] o.f.core.internal.command.DbValidate : Successfully validated 2 migrations (execution time 00:00.022s)
2019-07-22 16:07:27.057 INFO 46406 --- [ main] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table: "public"."flyway_schema_history"
2019-07-22 16:07:27.074 INFO 46406 --- [ main] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >>
2019-07-22 16:07:27.075 INFO 46406 --- [ main] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version 1.1 - create-pgcrypto
2019-07-22 16:07:27.089 INFO 46406 --- [ main] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version 20190712113815 - creating-initial-tables
2019-07-22 16:07:27.138 INFO 46406 --- [ main] o.f.core.internal.command.DbMigrate : Successfully applied 2 migrations to schema "public" (execution time 00:00.082s)
2019-07-22 16:07:28.603 INFO 46406 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2019-07-22 16:07:28.625 INFO 46406 --- [ main] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.003s)
2019-07-22 16:07:28.632 INFO 46406 --- [ main] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table: "public"."flyway_schema_history"
2019-07-22 16:07:28.643 INFO 46406 --- [ main] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >>
2019-07-22 16:07:28.643 INFO 46406 --- [ main] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version 1.1 - create-pgcrypto
2019-07-22 16:07:28.656 INFO 46406 --- [ main] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public" (execution time 00:00.024s)
flyway 似乎正在检测 2 个脚本,但仅迁移 1 个脚本。
最佳答案
您可以使用Flyway的设置位置方法 这里:
flyway.setLocations("filesystem:src/test/resources/db/migration");
关于java - 在java中运行动态生成的flyway脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57153667/