Как сохранить историю миграций Flyway H2 в другой схеме, чем PUBLIC?

Используя Flyway с базой данных H2, я извлекаю из коробки всю историю миграций схемы SQL, хранящуюся в PUBLIC.schema_version.

Я хотел бы сохранить эту таблицу в выделенной схеме SQL FLYWAY , например: FLYWAY.history.

Причины этого не в том, чтобы визуально загрязнять консоль Н2 при открытии таблиц PUBLIC, и во избежание столкновения пространства имен.

Изменяя свойство flyway.table, можно изменить имя таблицы истории.

Но использование flyway.table=FLYWAY.history не работает. Схема FLYWAY не создается, и вместо этого создается таблица PUBLIC.'FLYWAY.history'.

Как настроить конфигурацию Flyway для достижения ожидаемого результата?

4 голоса | спросил Christian MICHON 27 J000000Monday15 2015, 15:05:26

1 ответ


0

Предоставление этого свойства частично решает проблему: flyway.schemas=FLYWAY,PUBLIC.

При этом таблица истории будет сохранена в схеме FLYWAY, но все миграции будут выполняться по умолчанию в этой схеме.

Пожалуйста, обратитесь к http://flywaydb.org/documentation/commandline/migrate.html и ищите схемы для более подробной информации.

Я обнаружил 2 проблемы в этом подходе, которые можно исправить с помощью небольших изменений.

1-й выпуск:

Схема FLYWAY должна существовать до любой попытки миграции на Flyway. Это можно сделать в Java с помощью stmt.execute("CREATE SCHEMA IF NOT EXISTS FLYWAY"); и закрыть базу данных перед миграцией

2-й выпуск.

Все миграции будут выполняться по умолчанию в схеме FLYWAY. Это можно исправить, изменив каждый файл миграции SQL, чтобы он указывал на схему PUBLIC. Каждый файл будет содержать следующие операторы: create table PUBLIC.PERSON (...);

Я решил свою проблему под рукой, но не совсем доволен исправлением и дополнительной ручной работой. Надеюсь, кто-то может прийти с лучшим ответом (более естественным образом) и с меньшими изменениями.

ответил Christian MICHON 27 J000000Monday15 2015, 15:48:11

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132