Во-первых, код базы данных, как и любой другой код, должен быть написан в сценарии и помещен в систему контроля версий.Таким образом, вы знаете, какой код должен быть передан с какой версией приложения, которое вы продвигаете (и может быть легко связан с ним).В конце концов, у вас могут быть изменения, которые вы не готовы подтолкнуть в prod, поскольку соответствующий код приложения еще не готов.
Ни при каких обстоятельствах нельзя изменять базу данных с помощью графического интерфейса, вносить изменения только с использованием сценариев, находящихся в системе контроля версий.
Как только у вас есть данные, все изменения в таблицах следует выполнять с помощью alterТаблица.Если вы не можете использовать alter table для чего-либо (например, добавление поля идентификатора после факта), тогда вы пишете сценарий для создания таблицы с небольшим другим именем в структуре, которую вы хотите, скопировать данные из старой таблицы, отброситьстарый стол и переименуйте новый.Конечно, вам также придется удалять и воссоздавать индексы, ограничения, триггеры и т. Д., Если они есть в таблице.К счастью, большинство изменений могут быть сделаны с помощью таблицы alter.) Если вам нужно создать новое поле, которое не может иметь значение null, то вы используете alter table, чтобы написать новое поле со значением по умолчанию, или таблицу alter, чтобы добавить поле, допускающее нули., напишите обновления, чтобы заполнить поле существующими данными, а затем напишите другую таблицу изменения, чтобы поле не было нулевым.