Миграция схемы PUBLIC до версии 1.2 не удалась

1

Я пишу приложение базы данных swing в Spring IDE [SetNew] -eclipse и maven. так что вот мой простой код подключения db и переносите его с помощью пролетного пути.

Основной класс

    public static void main(final String[] args) throws SQLException {
        final BasicDataSource ds = new BasicDataSource();
        ds.setDriverClassName("org.h2.Driver");
        ds.setUrl("jdbc:h2:target/db");
        ds.setUsername("root");
        ds.setPassword("");

        try {
          final Flyway flyway = new Flyway();
          flyway.setDataSource(ds);
          flyway.migrate(); // line no :12
    }}

Имя схемы по стандарту пролетного пути (2.2.1):

V1__init_db.sql

И когда я запускаю этот код, я получил эту ошибку:

  Exception in thread "main" com.googlecode.flyway.core.api.FlywayException: 
Migration of schema "PUBLIC" to version 1.2 failed! Please restore backups and roll back database and code!
        at com.googlecode.flyway.core.command.DbMigrate.migrate(DbMigrate.java:199)
        at com.googlecode.flyway.core.Flyway$1.execute(Flyway.java:872)
        at com.googlecode.flyway.core.Flyway$1.execute(Flyway.java:819)
        at com.googlecode.flyway.core.Flyway.execute(Flyway.java:1200)
        at com.googlecode.flyway.core.Flyway.migrate(Flyway.java:819)
        at com.swdb.exApp.Main.main(12)

любой знает, что такое help.please. а также это тюнинг от Alber Attard здесь

Теги:
swing
flyway

3 ответа

1
Лучший ответ

Проверьте свою базу данных. Flyway ранее выполнялся против сконфигурированной схемы и сбой миграции. Если вы можете отказаться от схемы, просто выпустите flyway.clean() и вы сможете начать новую работу. ЕСЛИ НЕ, вы должны выполнить очистку вручную, прежде чем продолжить.

  • 0
    я удалил ранее сгенерированную базу данных в target / db , и это решило проблему для меня, спасибо за повтор ...
0

"Миграция схемы" PUBLIC "до версии XX не удалась!" часто могут появляться на консоли или в файлах отчетов, но могут маскировать более серьезную ошибку с SQL. Когда я получил эту проблему, я позже заметил, что папка target/db имеет файл с именем.trace.db. Когда я просмотрел этот файл трассировки в текстовом редакторе, он показал мне точную ошибку SQL, которую я получал, в моем случае я пытался вставить с недопустимым именем столбца.

0

Как подчеркнул разработчик Flyway, при запуске миграции возникла проблема.

В идеале мы начинаем с нуля. База данных создается в папке с именем db в target каталоге (ds.setUrl("jdbc:h2:target/db");). Удалите каталог db. Это удалит всю базу данных. Это заставит Flyway снова начать работу и выполнить сценарии миграции.

Убедитесь, что вы используете правильные версии. В этом руководстве мы делаем следующие версии (с которыми управляются зависимости через Maven):

<dependencies>
  <dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>1.3.173</version>
  </dependency>
  <dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.4</version>
  </dependency>
  <dependency>
    <groupId>com.googlecode.flyway</groupId>
    <artifactId>flyway-core</artifactId>
    <version>2.3.1</version>
  </dependency>
</dependencies>

Я считаю, что некоторые новые версии H2 несовместимы с этими примерами и моими проблемами.

Можете ли вы попробовать это?

С уважением, Альберт Аттард

  • 0
    эй алби мужик, как ты ..

Ещё вопросы

Сообщество Overcoder
Наверх
Меню