Ошибка Flywaydb в котлине - PullRequest
0 голосов
/ 05 мая 2018

Я хочу использовать flywaydb в Kotlin, но у меня есть ошибка в использовании
Моя база данных - PostgreSQL, а мой ORM - Kotlin Exposed

Код:

val url = "jdbc:postgresql://127.0.0.1/test1"
    Database.connect(url, driver = "org.postgresql.Driver", user = "postgres", password = "123")

    var flyway =  Flyway()
    flyway.setDataSource(url, "postgres", "123")
    flyway.migrate()      

Ошибка:

Исключение в потоке "main" org.flywaydb.core.api.FlywayException: Найдены непустые схемы "public" без таблицы истории схем! использование baseline () или установите для baselineOnMigrate значение true, чтобы инициализировать схему таблица истории. в org.flywaydb.core.Flyway $ 1.execute (Flyway.java:1197) в org.flywaydb.core.Flyway $ 1.execute (Flyway.java:1168) в org.flywaydb.core.Flyway.execute (Flyway.java:1655) в org.flywaydb.core.Flyway.migrate (Flyway.java:1168)

Как я могу решить это? Где мой код неверен?

1 Ответ

0 голосов
/ 05 мая 2018

Найдены непустые схемы "public" без таблицы истории схем! Используйте baseline() или установите baselineOnMigrate в значение true, чтобы инициализировать таблицу истории схемы.

Это сообщение об ошибке в значительной степени говорит обо всем. Вы, кажется, запускаете Flyway в базе данных, уже заполненной таблицами.

По умолчанию Flyway рассчитывает на запуск в новой базе данных в новом проекте . Сначала Flyway устанавливает свой собственный стол для внутреннего отслеживания. Это «таблица истории схемы», упомянутая в вашем сообщении об ошибке. После установки собственной таблицы Flyway запускает ваши сценарии SQL, создавая дополнительные таблицы.

Если вы добавляете Flyway в существующую базу данных, выберите любое решение:

  • Создайте заново базу данных, начиная с пустой базы данных, сначала запустив Flyway, затем написав и выполнив сценарии SQL для воссоздания всех элементов вашей старой базы данных и, наконец, импортировав существующие данные.
  • Читайте о функции Flyway baseline , так же как и в сообщении об ошибке.
...