Возможно ли автоматическое обновление в виде Terraform с помощью жидкой базы / пролетного пути?
Мы все еще находимся на ранних этапах нашего проекта, и мы создаем базу данных с несколькими таблицами. Оба перечисленных инструмента позволяют нам создавать некоторые файлы DDL/DML и отслеживать изменения в БД. В любом случае это может быть громоздким, когда структура еще не консолидирована.
Предположим, я хочу добавить новый столбец или даже удалить таблицу: в обеих программах мне нужно создать новый скрипт с помощью ALTER TABLE/etc. команда и документ изменения.
В terraform вы просто пишете желаемую инфраструктуру, а когда вы изменяете файл, удаляя узел, инструмент обновляет только то, что уже есть.
Можно ли будет просто перечислить таблицы в файле, и когда я, например, удаляю определение таблицы, инструмент просто обновляет существующую схему? То же самое, если кто-то изменяет схему с помощью другого инструмента.
1 ответ
До тех пор, пока вы не возражаете против потери данных (звучит так, как будто это может быть хорошо с вашего вопроса), Flyway имеет cleanOnValidationError
флаг.
Таким образом, вы можете работать с одним (или несколькими) файлами SQL, и как только вы запустите миграцию и изменился ранее запущенный файл, Flyway сообщит об ошибке проверки, которая, в свою очередь, очистит схему перед тем, как Flyway немедленно настроит все заново. в соответствии с последними определениями.
Они невероятно полезны для быстрых итераций в разработке.