2015-03-19 4 views
2

Атрибут «версия» в таблице schema_version - VARCHAR2 (50 BYTE).Соглашение об именовании вылета не принимает буквенные числовые символы

, когда сценарий миграции DB называется VB2042_1_First_Changes.sql. Flyway выбрасывается как сообщение об ошибке.

Ошибка: Номер версии должен всегда начинаться с 0..9

типа данных varchar2 должен иметь возможность принимать буквенно-цифровые данные. Является ли это ошибкой в ​​пролетном пути 3.2 или есть какая-либо работа, доступная там.

ответ

2

Похоже на две проблемы для меня с вашим именем.

  • V должно сопровождаться цифрами.
    (У вас есть B.)
  • Двойное подчеркивание должно отделять номер версии от описания.
    (Похоже, у вас есть только один символ подчеркивания.)

Ключевым понятием является то, что делает пролетный путь перевести номер версии (первая часть вашего имени файла) к фактической Major.Minor.Micro.Nano номер стиля как это обычно используется в индустрии программного обеспечения. Другими словами, номер версии вашего скрипта - не в алфавитном порядке.

V необходим для идентификации этого сценария как одноразовый прогон, в отличие от R, который означает повторяемость, выполняемый каждый раз. После этого первого символа, после V/R, появится номер вашей версии.

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

Так что ваш файл с именем:

VB2042_1_First_Changes.sql

... должны были названы таким образом, понижая B и добавления второго подчеркивания в середине ...

V2042_1__First_Changes.sql

... из которого пролетный путь будет внутренне производить версия номер 2042.1.

Лично я использую приблизительную дату и час дня в качестве номера версии моих сценариев. И я использую точки, а не символы подчеркивания. Поэтому я использовал бы это для скрипта, написанного вечером 23 января этого года.

V2017.01.23_19__First_changes.sql

... из которого пролетный путь будет внутренне подготовить номер версии 2017.1.23.19. Обратите внимание, что здесь игнорируются любые ведущие нули, такие как 01, поскольку строка преобразуется в числа.

Вот слайд из разговора, который я даю на Flyway, подытоживая эти правила.

a slide from a presentation on Flyway, summarizing naming rules.