0

我无法使用 .sql 文件指定目录的正确路径。我尝试将“baseDir”属性设置为不同位置的不同目录(当然是在类路径中)并设置不同的类路径。构建脚本总是带有消息“<strong>无法找到 sql 迁移的路径:[uri to directory with . sql 文件]”。

它不像类似问题中所说的问题 156,当然如果我删除 SqlMigrationResolver.java 中的代码

if (StringUtils.hasText(baseDir) && !new ClassPathResource(baseDir + "/",
    classLoader).exists()) {
  LOG.warn("Unable to find path for sql migrations: " + baseDir);
  return migrations;
}

正如评论 #9中所说,我仍然抓住

deployDB:
[flyway:migrate] com.googlecode.flyway.core.exception.FlywayException: Error loading sql migration files
[flyway:migrate] Caused by java.io.FileNotFoundException: class path resource [db/migration/] cannot be resolved to URL because it does not exist

BUILD FAILED
c:\DeployTest\build.xml:208: Flyway Error: com.googlecode.flyway.core.exception.FlywayException: Error loading sql migration files

飞路落在

resources = new PathMatchingResourcePatternResolver(classLoader)
        .getResources("classpath:" + searchRoot + searchPattern);

它不能执行 getResources 方法。

它看起来不像错误,看起来我无法使用我的 SQL 脚本将正确的 uri 设置为目录 =(

请帮我设置这个该死的uri!

我的 build.xml:

<target name="init-flyway">
  <taskdef uri="antlib:com.googlecode.flyway.ant"
           resource="com/googlecode/flyway/ant/antlib.xml"
  />
  <property name="flyway.driver" value="${dbDriver}"/>
  <property name="flyway.url" value="${dbUrl}"/>
  <property name="flyway.user" value="${dbScheme}"/>
  <property name="flyway.password" value="${dbPass}"/>
  <property name="flyway.baseDir" value="\db\migration"/>
  <property name="flyway.classpath" value="c:\DeployTest"/>
</target>

<target name="deployDB" depends="init-flyway">
  <flyway:migrate/>
</target>
4

2 回答 2

2

尝试将flyway.classpathproperty更改为path

对于您的情况,这意味着更改:

<property name="flyway.classpath" value="c:\DeployTest"/>

对此:

<path id="flyway.classpath">
    <fileset dir="c:\DeployTest"/>
</path>
于 2012-02-23T20:17:46.383 回答
2

而不是这个:

<path id="flyway.classpath"> 
    <fileset dir="c:\DeployTest"/> 
</path>

采用:

<path id="flyway.classpath">  
      <pathelement location="c:\DeployTest"/>
</path>  
于 2012-03-28T00:57:51.113 回答