Хобрук: Ваш путь к мастерству в программировании

Миграции Flyway не сохраняются во встроенной базе данных H2

На самом деле я пишу небольшое веб-приложение с весенней загрузкой и хотел использовать (встроенную) базу данных H2 вместе с Spring Data JPA и Flyway для миграции базы данных.

Это мое приложение.Свойства:

spring.datasource.url=jdbc:h2:~/database;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1;
spring.datasource.username=admin
spring.datasource.password=admin
spring.datasource.driver-class-name=org.h2.Driver

В методе main() моего класса @SpringBootApplication я делаю следующее:

ResourceBundle applicationProperties = ResourceBundle.getBundle("application");
Flyway flyway = new Flyway();
flyway.setDataSource(applicationProperties.getString("spring.datasource.url"), applicationProperties.getString("spring.datasource.username"), applicationProperties.getString("spring.datasource.password"));
flyway.migrate();

Я добавил сценарий, который создает таблицу USER в базе данных, Flyway говорит, что она правильно перенесена, но если я подключаюсь к базе данных, в схеме PUBLIC есть только таблица schema_versions из списка Flyway.

Если я добавляю другой скрипт, который вставляет базовые данные в таблицу USER, миграция завершается неудачей, поскольку таблица отсутствует после перезапуска моего весеннего загрузочного приложения.

Может ли кто-нибудь сказать мне, отсутствует ли он в моей конфигурации? Или если в моей настройке есть какое-то неверное предположение...


Ответы:


1

У меня недостаточно данных о вашей конфигурации

  1. Подсказка: см. файл миграции должен быть частью каталога /db/migration

  2. Подсказка: используйте шаблон типа V1.0.1__name.sql 2 под баллами.

  3. Подсказка, в зависимости от версии Flyway, вы должны начать с версии файла sql выше 1.0, например 1.0.1.

  4. Подсказка по умолчанию для весенней загрузки jpa удаляет содержимое вашей базы данных, если вы используете базу данных в памяти. См. http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-sql.html раздел 28.3.3.

15.08.2015
  • Четвертая подсказка решила мою проблему! После добавления spring.jpa.hibernate.ddl-auto=none к моему application.properties данные Spring и пролетный путь выполняют назначенную работу должным образом. Большое спасибо за Ваш ответ! 17.08.2015
  • работает безупречно! теперь можно вставлять данные с помощью flyway в базу данных h2. 04.09.2020
  • Новые материалы

    Неделя 1 — Кентерберийские рельсы.
    Неделя 1 — Кентерберийские рельсы. So. Мы все еще живы, все еще усердно работаем и еще не пассивно-агрессивно рассылаем друг другу сообщения «за мое последнее сообщение в Slack…», поэтому, на..

    Цена завтрашнего дня  — Джефф Бут
    Технологический прогресс в наши дни происходит с молниеносной скоростью, и мы не в состоянии это понять. Джефф в основном говорит о влиянии технологий на экономику по всему миру. Он твердо верит..

    Данные: суперсила современного бизнеса
    В цифровой среде данные превратились из простого побочного продукта бизнес-операций в центральный актив, стимулирующий рост и инновации. Крейг Манди, бывший главный директор по стратегии..

    Как симулировать серию пенальти на Python с помощью симуляции Монте-Карло, часть 1: генерация функций
    Серия пенальти была огромным испытанием во время чемпионата мира по футболу. Они вызвали много споров в социальных сетях и новостных агентствах. Даже финальный матч турнира решался по..

    AST для разработчиков JavaScript
    TL; DR Эта статья - мое выступление на недавно состоявшейся конференции Stockholm ReactJS Meetup. Вы можете посмотреть слайды здесь..

    5 проектов на Python, которые нужно создать прямо сейчас!
    Добро пожаловать! Python — один из моих любимых языков программирования. Если вы новичок в этом языке, перейдите по ссылке ниже, чтобы узнать о нем больше:

    Dall-E 2: недавние исследования показывают недостатки в искусстве, созданном искусственным интеллектом
    DALL-E 2 — это всеобщее внимание в индустрии искусственного интеллекта. Люди в списке ожидания пытаются заполучить продукт. Что это означает для развития креативной индустрии? О применении ИИ в..