Lin*_*k19 3 java spring hibernate eclipse-rcp flyway
我有一个Spring/H2/Hibernate项目,我正在尝试集成flyway.该项目使用maven构建并创建一个Jar,然后我将其包含在访问数据库的其他应用程序中.
我的问题是,当我测试spring项目时,flyway工作正常并创建我的模式,但是当我在另一个项目中部署lib时,它似乎找不到迁移脚本.我已经检查过,它们在jar文件中.
我的春天配置:
<bean id="flyway_database_1" class="org.flywaydb.core.Flyway" init-method="migrate">
<property name="dataSource" ref="dataSource1" />
<property name="locations" value="com.domain" />
<property name="sqlMigrationPrefix" value="DATABASE_1_V" />
</bean>
<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${database.1.driver}" />
<property name="url" value="${database.1.url}" />
</bean>
Run Code Online (Sandbox Code Playgroud)
我的应用程序在类路径中找到Spring Context XML文件和属性文件,但是flyway似乎没有找到sql文件.
对于我的位置,我尝试过"com.domain","com/domain","classpath:/","classpath:/ database1/migration /"
所有这些都在Spring项目中工作,然后在包含jar时无法检测到文件.
关于为什么会这样的任何想法?
编辑:我认为这可能是由于我在RCP应用程序中包含jar可能FlyWay检测文件的方式与Spring不同?
你使用的是什么版本flyway-core?flyway中有一个错误,用于从jar文件中扫描sql脚本.有关详细信息,请参阅https://github.com/flyway/flyway/issues/1261.此问题已在4.1版本中修复,因此您可以尝试添加最新版本的flyway-core.
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>4.2.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
编辑
您可以尝试使用filesystem:如下方式提供完整的位置路径,看看它是否正常工作?
<property name="locations" value="filesystem:C:/project/spring-flyway/src/main/resources/db/migration" />
Run Code Online (Sandbox Code Playgroud)
编辑
这是一个错误,需要在Flyway修复.https://github.com/flyway/flyway/issues/1630.暂时你可以在你的插件项目中创建db/migration文件夹并在那里保存迁移sql文件.
| 归档时间: |
|
| 查看次数: |
349 次 |
| 最近记录: |