Files
Aknaproff/HOTFIX_v4.1.22.md
Deploy Bot bf43461559 v4.1.22: Исправлено удаление записей (HOTFIX)
- 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
2026-01-14 23:34:00 +02:00

3.4 KiB
Raw Blame History

🔧 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 - endpoint DELETE /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 Исправлено удаление записей

Статус: ГОТОВО
Тестирование: ПРОЙДЕНО
Развёртывание: ГОТОВО К ИСПОЛЬЗОВАНИЮ