Заполнить вновь созданные столбцы для старых записей базы данных в производстве? - PullRequest
0 голосов
/ 03 марта 2020

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

Итак, у меня возникла ситуация, когда я расширил свою существующую таблицу базы данных еще одним столбцом, который должен хранить очень специфическое c уникальное значение для каждого клиента. Когда я создаю новые записи в системе, этот столбец будет заполнен, и он будет работать нормально. Однако теперь проблема в том, что у меня есть несколько старых записей, которые существовали до введения этого столбца, и они пусты, и в результате код не может выполняться правильно.

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

Я использую Spring boot и flyway для перенастройки БД, было бы здорово, если есть решение, связанное с этим.

1 Ответ

0 голосов
/ 03 марта 2020

когда это произойдет, я просто создаю новую версию пакета миграции flyway, например:

 migration/V4__add_column1_table1
 migration/V5__fix_table1_column1_nulls

и внутри скрипта запускаю:

update table1 set column1 = 'Default Value' where column1 is null;

Возможно, существуют более чистые способы, но это исправление сработало для меня.

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