Flyway - отслеживает ли зависимость схемы и объекта - PullRequest
0 голосов
/ 16 октября 2019

Я установил программное обеспечение Flyway и пытаюсь развернуть код. У меня есть сценарий

  1. Я создал файл V1_01_CREATE_TABLE.SQL для создания таблицы.

  2. Создан файл V1_01_CREATE_PACKAGE.SQL - этот пакет будетудерживать код для вставки строки в один из столбцов в таблице, созданной на шаге 1.

  3. Создан файл V1_01_02_ALTER_TABLE.SQL - этот SQL переименует столбец, на который ссылался шаг 2.

Это сделает пакет недействительным, если я запусту 1, 2 и 3. Как FLYWAY справляется с такой ситуацией? Понимает ли это зависимость от объекта?

Ответы [ 2 ]

0 голосов
/ 17 октября 2019

Как объяснено в руководстве , Flyway просто передает ваши сценарии SQL в базу данных для выполнения и записывает успех или неудачу их выполнения.

Flyway не заинтересован и не понимает содержание ваших скриптов. Flyway никогда не смотрит на содержание этих сценариев. В этом смысле на «Флайвее» нет «интеллекта».

Flyway похож на почтового работника, который доставляет ваши письма, не открывая конверт. Вы являетесь автором и несете полную ответственность за логику и правильность сценариев SQL. Вы несете ответственность за соблюдение соглашений об именах, поэтому ваши сценарии выполняются в правильном порядке.

После первоначального создания таблицы метаданных Flyway очень ограниченно использует JDBC и SQL. Flyway делает немного больше, чем просто устанавливает соединение с сервером базы данных, определяет, какие из сценариев еще не запущены, и скажите базе данных «Вот, запустите этот сценарий и этот сценарий, а затем запустите этот сценарий». Во время записиуспех или неудача каждого запуска.

0 голосов
/ 17 октября 2019

Вы должны назвать свои сценарии в порядке их выполнения

V1.0.0_CREATE_TABLE.SQL
V1.0.1_CREATE_PACKAGE.SQL
V1.0.2_ALTER_TABLE.SQL

Это выполнит сценарии в перенесенном

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...