-- Мягкое удаление полей формы: удалённые скрываются везде (getFormFields), -- но определение и значения в задачах сохраняются — доступны в архиве -- и в блоке «Удалённые поля» карточки задачи, возможно восстановление. ALTER TABLE form_fields ADD COLUMN IF NOT EXISTS deleted_at TIMESTAMPTZ; -- Код удалённого поля освобождается: unique теперь только среди активных. -- Старый constraint снимаем по всем известным именам (drizzle называл его _unique). ALTER TABLE form_fields DROP CONSTRAINT IF EXISTS form_fields_form_id_code_unique; ALTER TABLE form_fields DROP CONSTRAINT IF EXISTS form_fields_form_id_code_key; DROP INDEX IF EXISTS form_fields_form_id_code_unique; CREATE UNIQUE INDEX IF NOT EXISTS form_fields_form_id_code_active_key ON form_fields (form_id, code) WHERE deleted_at IS NULL;