2013-04-15 3 views
6

Ошибка: [ERROR] com.googlecode.flyway.core.api.FlywayException: невозможно определить URL-адрес для определения пути к кластеру: db/migration (ClassLoader: ClassRealm [плагин> com.googlecode.flyway: flyway-maven-plugin: 2.1.1, parent: [email protected]])Flyway не находит мои миграции sql в db/миграции

Я следовал за быстрым стартом, поэтому я пока не делаю ничего сложного.

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.cpt.migrations</groupId> 
    <artifactId>cpt_migrations</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>cpt_migrations</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.24</version> 
    </dependency> 
    </dependencies> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>com.googlecode.flyway</groupId> 
       <artifactId>flyway-maven-plugin</artifactId> 
       <version>2.1.1</version> 
       <configuration> 
        <user>root</user> 
        <password></password> 
        <driver>com.mysql.jdbc.Driver</driver> 
        <url>jdbc:mysql://localhost:3306/cpt</url> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

И моя структура папок предписанное PROJECT_ROOT/SRC/главная/ресурсы/дб/миграция/V1__Base_version.sql:

я получаю ошибку, когда, из PROJECT_ROOT, я выполняю: mvn flyway: migrate

ответ

13

Не забудьте сначала вызвать компиляцию, чтобы убедиться, что ресурсы скопированы.

+2

Ahhh ... Спасибо Axel. maven noob терпит неудачу. –

+0

Что вы имеете в виду? можете ли вы лучше объяснить? Я использовал netbeans 7.4 –

+0

@Axel Fontaine like Jeff Я настроил свой pom.xml, и у меня есть мои сценарии .sql в папке db/migration в ресурсах .. при выполнении компиляции flyway: migrate Я получаю com.googlecode.flyway .core.api.FlywayException: невозможно создать схему '': неправильное имя базы данных '', что может быть проблемой? мое имя файла sql - test.sql –

0

Он должен быть составлен:

mvn compile flyway:migrate 

Вы можете использовать

<executions> 
      <execution> 
      <id>compile</id> 
      <phase>compile</phase> 
      <goals> 
       <goal>migrate</goal> 
      </goals> 
      </execution> 
      <execution> 
      <id>clean</id> 
      <phase>clean</phase> 
      <goals> 
       <goal>clean</goal> 
      </goals> 
      </execution> 
     </executions> 

в

<plugin>..</plugin> 

, а затем просто МВН компиляции необходим для выполнения Migrate задачи

+3

Я не думаю, что выполнение миграции при компиляции - хорошая идея. –

0

Выполнить mvn команды из каталога, в котором находится целевой каталог.

1

В моем случае мне пришлось установить явно

flyway.locations=classpath:db/migration 

в моих application.properties (Spring загрузочными) для его работы.

+0

Установить где? Не думайте, что все являются экспертами в этих вещах! – Willa

+0

@Willa в файле application.properties Spring Boot. Я обновляю ответ – ianaz

 Смежные вопросы

  • Нет связанных вопросов^_^