👩💻 Тонкости миграций Postgres: как сделать поле явно
NOT NULL и не уронить базу?Есть огромная таблица some_big_table в которую непрерывно идут запросы на запись и чтение.
В этой таблице есть колонка foo_field, которая изначально
NULLABLE, но фактически мы всегда туда пишем значение. И вот мы хотим сделать её явно NOT NULL.Разработчик предлагает следующую миграцию:
0001_migration.sql:
BEGIN;
ALTER TABLE some_big_table
ADD CONSTRAINT some_big_table_foo_field_not_null
CHECK (foo_field IS NOT NULL) NOT VALID;
ALTER TABLE some_big_table
VALIDATE CONSTRAINT some_big_table_foo_field_not_null;
COMMIT;
Ваш вердикт на ревью?
Поставьте реакцию 👍 — если считаете миграцию верной, 🤡 — если не верной.
______________________
Ответ будет в следующем посте