У меня есть база данных postgres, в которой уже определены пользователи и роли. В этой базе данных есть несколько схем, которые контролируются с помощью разных проектов/сценариев пролета. Я работаю над добавлением интеграции Flyway в новый проект, где мы будем использовать встроенный экземпляр Postgres для тестирования.Как обрабатывать DCL в сценариях миграции Flyway?
Поскольку ни один из этих пользователей/ролей не будет существовать в этом экземпляре, их необходимо создать в сценарии миграции. Однако, поскольку эти пользователи/роли уже существуют в моих операционных базах данных, миграции будут терпеть неудачу, когда они попытаются создать роли.
Я уже рассматривал возможность записи функции для этого, но тогда функция должна быть включена в любой проект, который использует встроенные Postgres и должен поддерживаться на нескольких базовых кодах. Это кажется очень неряшливым. Может ли кто-нибудь рекомендовать мне способ обработать эти операции DCL с помощью Flyway, которые будут работать со встроенным подходом, а также с моими операционными базами данных?
Не подходит ли Flyway некоторые предварительные условия, такие как Liquibase? (Миграция будет выполняться только в том случае, если предварительное условие истинно). Или вы можете использовать синтаксис 'insert ... в конфликте ничего не сделайте ', чтобы инструкции не терпели неудачу, если строки уже существуют –
Я ничего не вижу из беглого поиска Google, или что-то очевидное в документации Flyway об этом. Это похоже на довольно важную функцию. – gsteiner