Files
rltn/DB_TROUBLESHOOTING.md

2.9 KiB
Raw Permalink Blame History

Диагностика проблем с базой данных

Проблема: Сохранение в БД не работает

Шаг 1: Проверка таблицы city_objects

  1. Откройте редактор карт
  2. Нажмите кнопку "Проверить БД"
  3. Проверьте результат в консоли браузера

Если таблица не существует:

node run-city-objects-migration.js

Шаг 2: Проверка подключения к БД

Проверьте переменные окружения в .env:

DATABASE_URL=postgresql://username:password@localhost:5432/database_name

Шаг 3: Проверка логов сервера

В консоли сервера должны быть логи:

Сохранение объекта: { id: null, city_id: 1, name: "...", ... }
Объект сохранен: { id: 123, success: true }

Шаг 4: Проверка API эндпоинтов

Тестовые запросы:

# Проверка таблицы
curl -X GET http://localhost:3000/api/test-city-objects \
  -H "Authorization: Bearer YOUR_TOKEN"

# Проверка сохранения объекта
curl -X POST http://localhost:3000/api/save-object \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{
    "city_id": 1,
    "model_url": "models/copied/test.glb",
    "name": "Тестовый объект",
    "pos_x": 0,
    "pos_y": 0,
    "pos_z": 0
  }'

Возможные проблемы и решения

1. Таблица city_objects не существует

Решение: Выполните миграцию

node run-city-objects-migration.js

2. Ошибка подключения к БД

Решение: Проверьте DATABASE_URL в .env файле

3. Ошибка прав доступа

Решение: Убедитесь, что пользователь БД имеет права на создание таблиц

4. Ошибка внешних ключей

Решение: Убедитесь, что существуют таблицы:

  • cities
  • organizations
  • interiors

5. Ошибка аутентификации

Решение: Проверьте токен в localStorage браузера

Отладка в браузере

  1. Откройте DevTools (F12)
  2. Перейдите на вкладку Network
  3. Попробуйте добавить объект в редактор
  4. Найдите запрос к /api/save-object
  5. Проверьте статус ответа и содержимое

Логи сервера

Проверьте консоль сервера на наличие ошибок:

  • Ошибки подключения к БД
  • Ошибки SQL запросов
  • Ошибки валидации данных