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.
This commit is contained in:
zeroday
2026-08-25 22:35:20 +03:00
parent 29d1386dd9
commit f8730d9d09
2 changed files with 17 additions and 1 deletions
+1 -1
View File
@@ -6,7 +6,7 @@ export const publicRouter = Router();
publicRouter.get('/content', async (_req, res) => {
try {
const [sections, products, approach, settings] = await Promise.all([
query<{ key: string; title: string; content_json: unknown; sort_order: number }>(
query<{ key: string; title: string; content_json: unknown; content_json_en: unknown; sort_order: number }>(
`SELECT key, title, content_json, content_json_en, sort_order
FROM sections
WHERE is_active = true