Интеграция Flyway с Git и подключение к Snowflake

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

Я наткнулся на инструмент миграции баз данных Flyway, и при просмотре документации у меня возник вопрос об интеграции с репозиторием кода, где вносятся изменения в схему базы данных.

Также работает ли FLyway со Snowflake. если да, где я могу добавить необходимые драйверы jdbc для подключения к базе данных и что такое файл.conf для подключения Snowflake.

0 ответов

Официально Flyway не работает со Snowflake в данный момент (как вы можете видеть там https://github.com/flyway/flyway/pull/2274). В соответствии с этим обсуждением, похоже, существует совместимый с Snowflake форк, однако я бы не советовал делать это в производственной системе без тщательной проверки, но если вам действительно это нужно, возможно, стоит взглянуть.

Что касается интеграции Flyway с Git, вы можете интегрировать Flyway в процесс CI, потянув изображение Docker Flyway ( https://github.com/flyway/flyway-docker) - или используя свое собственное изображение, если вы решите пойти на Snowflake-совместимая вилка - и запуск команды migrate для вашей целевой базы данных.

Для протокола, это явно изменилось.

Теперь Snowflake поддерживается

https://flywaydb.org/documentation/database/snowflake

Хотя текущая версия (flyway 6.2.0) выдает предупреждение...

ВНИМАНИЕ: рекомендуется обновление Flyway: Snowflake 4.2 новее, чем эта версия Flyway, и поддержка не проверялась.

Я использую flyway 6.4.2 и работаю с этой конфигурацией в файле pom:

<execution>
    <id>my_sf_migration</id>
    <phase>compile</phase>
    <goals>
        <goal>migrate</goal>
    </goals>
    <configuration>
        <!--This is where I got the driver wrong, that is why it was not working -->
        <driver>net.snowflake.client.jdbc.SnowflakeDriver</driver>
        <configFiles>
            <configFile>./conf/flyway_sf.conf</configFile>
        </configFiles>
    </configuration>
</execution>
Другие вопросы по тегам