DB2 продолжает возвращать "повторяющееся имя" при попытке добавить несуществующий столбец через Flyway с помощью Spring Boot - PullRequest
0 голосов
/ 29 мая 2020

Как добавить столбцы в таблицы DB2 через Flyway? У меня есть 2 сценария миграции пролетного пути. V1 - это первоначальное создание базы данных. V2 пытается добавить столбец в разные таблицы, который был исключен из V1.

ALTER TABLE TABLE1
ADD CODE VARCHAR(20);

ALTER TABLE TABLE2
ADD CODE VARCHAR(20);

ALTER TABLE TABLE3
ADD CODE VARCHAR(20);

Это определенно кажется достаточно простым. Однако flyway получает ответ DB2 SQL Error: SQLCODE=-612, SQLSTATE=42711, SQLERRMC=CODE, что является ошибкой для повторяющихся столбцов при попытке добавить более одной строки из них за раз. Таким образом, добавление столбца в TABLE1 работает, то же самое для TABLE2. Но если выполнить оба, я получаю сообщение об ошибке.

Как мне структурировать эти запросы, чтобы они не конфликтовали?

1 Ответ

0 голосов
/ 29 мая 2020

Несмотря на ошибку DB2, это проблема не DB2, а проблема Flyway. Вы не можете добавить один и тот же столбец в несколько таблиц с последовательными запросами. Между ними должен быть запрос ИЛИ запросы должны быть в разных файлах миграции.

Это работает.

ALTER TABLE TABLE1 ADD CODE VARCHAR(20);
CREATE INDEX index1 ON TABLE1(CODE);

ALTER TABLE TABLE2 ADD CODE VARCHAR(20);
CREATE INDEX index2 ON TABLE2(CODE);

ALTER TABLE TABLE3 ADD CODE VARCHAR(20);
CREATE INDEX index2 ON TABLE3(CODE);
...