Files
umbyte-landing/db/005_english_columns.sql
zeroday f8730d9d09 fix: тип запроса секций и догоняющая миграция английских колонок
Оба дефекта вскрылись сборкой образа после слияния веток.

1. public.ts: SQL выбирает content_json_en, а описание типа запроса пришло из
   ветки визиток и этой колонки не знало — tsc отказывался собирать. След
   слияния: запрос из одной ветки, тип из другой.

2. Английские колонки (sections.content_json_en, products.title_en/subtitle_en/
   description_en) существуют на боевой базе, но их не создаёт ни одна
   миграция — когда-то добавили руками. На бою работало, на любой ЧИСТОЙ базе
   приложение упало бы на первом запросе /api/content. Заведена 005 с
   IF NOT EXISTS: на бою пусто, на чистой базе создаст.

Проверено на живом сайте: образ собран, контейнер healthy, миграции 004 и 005
применились сами, /api/content отдаёт 4 раздела на двух языках, 2 продукта,
полные реквизиты; страница визитки отвечает 200.
2026-08-25 22:35:20 +03:00

17 lines
1.1 KiB
SQL

-- Английские колонки для переключателя языка.
--
-- Колонки уже существуют на боевой базе — их когда-то добавили вручную, минуя
-- миграции. Найдено 25.08.2026 при слиянии веток: код их читает, а ни один
-- файл в db/ не создаёт, то есть на любой ЧИСТОЙ базе (новый стенд, локальная
-- разработка, восстановление из пустого) приложение падало бы на первом же
-- запросе /api/content.
--
-- IF NOT EXISTS делает миграцию безопасной для боевой базы: там она ничего не
-- изменит, только зафиксирует факт в _migrations.
ALTER TABLE sections ADD COLUMN IF NOT EXISTS content_json_en JSONB;
ALTER TABLE products ADD COLUMN IF NOT EXISTS title_en VARCHAR(256);
ALTER TABLE products ADD COLUMN IF NOT EXISTS subtitle_en VARCHAR(512);
ALTER TABLE products ADD COLUMN IF NOT EXISTS description_en TEXT;