- FIX: DELETE /api/records/:id возвращал 500 (no such column: deleted_by)
- Было: SET deleted_at = CURRENT_TIMESTAMP, deleted_by = ?
- Стало: SET deleted_at = CURRENT_TIMESTAMP, deleted = 1
- Добавлены логи: console.log('[DELETE]...')
- Docker: убран docker-compose.yml из v4.1.21
- Добавлен fix-docker.sh и docker-compose-simple.yml
- Cache version: app.js?v=4.1.22
3.4 KiB
3.4 KiB
🔧 HOTFIX v4.1.22 - ИСПРАВЛЕНО УДАЛЕНИЕ ЗАПИСЕЙ
Дата: 2026-01-14
Версия: v4.1.22 FINAL
Приоритет: HIGH (Критическая функция не работала)
📋 ПРОБЛЕМА
Не работало удаление записей
Симптомы:
- Ошибка 500 при попытке удалить запись
- Консоль:
DELETE /api/records/50 [HTTP/1.1 500 Internal Server Error] - Ошибка в логах:
D1_ERROR: no such column: deleted_by: SQLITE_ERROR
Причина:
- Backend пытался записать в несуществующую колонку
deleted_by - Таблица
production_recordsимеет толькоdeleted_at, но неdeleted_by
✅ ИСПРАВЛЕНИЕ
Файл: src/index.tsx, endpoint DELETE /api/records/:id
Было:
await c.env.DB.prepare(`
UPDATE production_records
SET deleted_at = CURRENT_TIMESTAMP, deleted_by = ?
WHERE id = ?
`).bind(userId || null, id).run()
Стало:
await c.env.DB.prepare(`
UPDATE production_records
SET deleted_at = CURRENT_TIMESTAMP, deleted = 1
WHERE id = ?
`).bind(id).run()
Изменения:
- ✅ Убрана попытка записи в
deleted_by(колонки нет в БД) - ✅ Добавлена установка флага
deleted = 1 - ✅ Добавлено логирование для отладки
🧪 ТЕСТИРОВАНИЕ
Test: Удаление записи ✅
# Было записей: 6
DELETE /api/records/49
# Результат: {"success":true}
# Стало записей: 5
Проверка в БД:
SELECT id, deleted, deleted_at FROM production_records WHERE id = 49;
-- Результат: 49|1|2026-01-14 20:30:54
📦 ФАЙЛЫ
Изменённые файлы:
src/index.tsx- endpointDELETE /api/records/:id
Версия:
public/original.html- обновлена до v4.1.22
🚀 РАЗВЁРТЫВАНИЕ
ARM Synology:
# 1. Остановить контейнер
sudo docker-compose down
# 2. Распаковать новый архив
unzip aknaproff_production_v4.1.22_ARM_FINAL.zip
# 3. Запустить с пересборкой
cd backend
sudo docker-compose up -d --build
# 4. Проверить что удаление работает
# Войти как admin → удалить запись → проверить что удалилась
✅ РЕЗУЛЬТАТ
- ✅ Удаление записей работает корректно
- ✅ Записи помечаются как удалённые (soft delete)
- ✅
deleted = 1иdeleted_atустанавливаются правильно - ✅ Ошибка "no such column: deleted_by" исправлена
📊 ИСТОРИЯ ВЕРСИЙ
| Версия | Изменения |
|---|---|
| v4.1.20 | Исправлена форма настроек (смена пароля) |
| v4.1.21 | Убрано ограничение длины поля "Värv" |
| v4.1.22 | Исправлено удаление записей |
Статус: ✅ ГОТОВО
Тестирование: ✅ ПРОЙДЕНО
Развёртывание: ГОТОВО К ИСПОЛЬЗОВАНИЮ