【发布时间】:2018-09-28 19:18:53
【问题描述】:
我的“resources/sql/create”文件夹中有多个 SQL 文件。我只想通过 Flyway 运行一个 SQL 文件。但以下不起作用:
final Flyway flyway = new Flyway();
flyway.setDataSource(jdbcUrl, "", "");
flyway.setLocations("classpath:sql/create/create_table_person.sql");
flyway.clean();
flyway.migrate();
如何只执行一个 SQL 文件?我无法删除其他文件,因为它们位于 test-jar 文件中。
【问题讨论】:
-
我不认为你可以通过
locations做到这一点,因为 Flyway 将位置扫描为迁移脚本的入口目录。也许您可以使用sqlMigrationPrefix属性通过文件名区分测试和生产脚本。 -
谢谢@TomasTulka!就我而言,我使用了
sqlMigrationSuffix,它可以工作。 -
您尝试排除其他文件的原因是什么?
-
@DavidAtkinson 因为我正在使用一个测试罐,其中包含通常用于创建所有表的所有 SQL 脚本。但在我的测试用例中,我只需要一张表。
-
如果其他对象已经在目标中并且被 Rlyway 放在那里,那么脚本将不会被 Flyway 运行。