Интеграция 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>