我有一个类似的问题,但我已经迁移到版本2.1.1和问题仍然在这里。我就是做那样的事
Flyway flyway = new Flyway();
flyway.setLocations(MIGRATION_PACKAGES);
flyway.setDataSource(getDatasource());
flyway.setTable("schema_version");
flyway.setSqlMigrationPrefix("v");
flyway.migrate();
这并没有问题,因为在我的IDE中所有工作都很好,但当我在jar中打包时,并没有找到我的迁移。。。有什么想法吗?
编辑:我已经测试过将包含迁移的jar放在一个测试应用程序的依赖项中,该测试应用程序刚刚迁移,并且迁移应用良好。。。我不知道我能做什么。
编辑我已经启用了最好的日志记录,现在可以找到迁移
FINE: Scanning for resources at 'db/migration' (Prefix: 'v', Suffix: '.sql')
juil. 10, 2013 4:44:53 PM com.googlecode.flyway.core.util.scanner.ClassPathScanner findResourceNames
FINE: Unable to determine URL for classpath location: db/migration (ClassLoader: java.net.URLClassLoader@6458c2)
juil. 10, 2013 4:44:53 PM com.googlecode.flyway.core.util.scanner.ClassPathScanner scanForClasses
FINE: Scanning for classes at 'db/migration' (Implementing: 'com.googlecode.flyway.core.api.migration.jdbc.JdbcMigration')
juil. 10, 2013 4:44:53 PM com.googlecode.flyway.core.util.scanner.ClassPathScanner findResourceNames
FINE: Unable to determine URL for classpath location: db/migration (ClassLoader: java.net.URLClassLoader@6458c2)
juil. 10, 2013 4:44:53 PM com.googlecode.flyway.core.util.scanner.ClassPathScanner scanForResources
FINE: Scanning for resources at 'com/me/myapp/sql/migration' (Prefix: 'v', Suffix: '.sql')
juil. 10, 2013 4:44:53 PM com.googlecode.flyway.core.util.scanner.ClassPathScanner findResourceNames
FINE: Unable to determine URL for classpath location: com/me/myapp/sql/migration (ClassLoader: java.net.URLClassLoader@6458c2)
juil. 10, 2013 4:44:53 PM com.googlecode.flyway.core.util.scanner.ClassPathScanner scanForClasses
FINE: Scanning for classes at 'com/me/myapp/sql/migration' (Implementing: 'com.googlecode.flyway.core.api.migration.jdbc.JdbcMigration')
juil. 10, 2013 4:44:53 PM com.googlecode.flyway.core.util.scanner.ClassPathScanner findResourceNames
FINE: Unable to determine URL for classpath location: com/me/myapp/sql/migration (ClassLoader: java.net.URLClassLoader@6458c2)
扫描位置的默认名称是db/migration
,而不是sql/migrations
。如果要改用sql/migrations
,请设置:
flyway.set位置(sql/迁移);
我在我支持的许多应用程序中实现了Flyway,它像梦一样工作。 但是,当我将应用程序部署到测试环境时,迁移就停止了。 经过一些调查,我发现当迁移被加载到jar文件中时,它们不是通过Flyway定位的,而是当它们没有被压缩时(比如当我在Eclipse中工作时,或者如果我将jar解压到类路径中),它会按预期工作。 由于应用程序的插件架构,我无法使用“默认”设置,因此我将Flyway对象设置为: 如果要
我有一个使用Flyway迁移的Spring Boot应用程序。一切正常,从: Intellij内部 从MacBook上的终端 使用“fine”,我的意思是找到迁移文件,这些文件被放置在src/main/resources中,并最终被放置在Spring Boot可执行JAR中。 但是,当我在CentOS6.8上从命令行运行jar时,Flyway无法找到迁移文件。 使用Java8。
我正在使用Flyway从Clojure内部进行数据库迁移。我遇到的问题是,当我制作一个uberjar来部署我的应用程序时,Flyway找不到jar文件中的迁移。它在开发中运行良好,无需打包应用程序。我尝试了一系列不同的组合来将迁移sql文件添加到jar中。我已经解压缩了jar,所有的迁移都在那里,我不确定问题是什么。 我使用的是flyway版本2.1.1,现在我的迁移是src/db/migrati
我已经尝试了几种方法(谷歌,堆栈溢出…)和几天解决以下错误没有成功。只有在运行应用程序时才会发生此错误。编译不受影响。 org.databene.commons。配置错误:未找到类:“org.databene.benerator.engine”。DefaultBeneratorFactory'位于org.databene.commons.ExceptionMapper.configurationE
我知道同样的问题已经被问了很多次,但是通过已经发布的所有答案,我找不到解决方案。 首先,以下是我在项目中遇到问题后用来测试该问题的代码: 因此,根据标题,这些对getResourceAsStream()的调用都返回null,但只有在执行jar文件时,在IDE(Netbean 8.0.2)内启动时,它们都返回正确的流(单独测试不使用这段代码),我可以使用它。 所以我现在真的很困惑,我在使用netbe
我有一个项目叫MyTest。它有三类: 第一个类实现了工具接口(这是导致问题的类),为了简单起见,我做了空实现: 第二类是普通类: 第三类也是普通类: 我将项目导出为“Runnable Jar”(即在Eclipse中:项目 我在“Launch Configuration”和“Packaged required libraries into generated JAR”中设置“A2”作为主类,输出J