Как правило, вы выполняете поэтапное развертывание каждого из этих изменений, и используемые вами шаги будут такими же в dev, что и в рабочей.В случае, если вы описываете, где вы добавляете столбец, это шаги, которые я бы предпринял, сначала протестировав их в разработке, а затем применив их в работе.
- Добавьте столбец к таблице в базе данных, допустив пустые значения * 1004.*
- Обновите код приложения, чтобы начать запись в новый столбец
- Если ожидается, что в каждой строке будут данные в этом столбце, запустите фоновый процесс / scripts / sql для обратной засыпки отсутствующих данных
- Обновите столбец в таблице, чтобы он не допускал пустых значений
- Обновлен код приложения, чтобы начать чтение из нового столбца
Приведенные выше шаги выполняются со следующими допущениями: Ни один изкод приложения выполняет любые запросы SELECT *
.Они могут сломаться, если вы добавите новые неизвестные столбцы на шаге 1, и по этой причине обычно считается, что запросы SELECT *
плохие.
Я предполагаю, что у вас есть инструмент, который управляет развертыванием кода и версий,Вам также следует рассмотреть возможность использования инструмента управления изменениями базы данных для отслеживания, версии и развертывания этих типов изменений базы данных.Я использовал для этого liquibase .