# Диагностика проблем с базой данных ## Проблема: Сохранение в БД не работает ### Шаг 1: Проверка таблицы city_objects 1. Откройте редактор карт 2. Нажмите кнопку "Проверить БД" 3. Проверьте результат в консоли браузера **Если таблица не существует:** ```bash node run-city-objects-migration.js ``` ### Шаг 2: Проверка подключения к БД Проверьте переменные окружения в `.env`: ```env DATABASE_URL=postgresql://username:password@localhost:5432/database_name ``` ### Шаг 3: Проверка логов сервера В консоли сервера должны быть логи: ``` Сохранение объекта: { id: null, city_id: 1, name: "...", ... } Объект сохранен: { id: 123, success: true } ``` ### Шаг 4: Проверка API эндпоинтов Тестовые запросы: ```bash # Проверка таблицы 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 не существует **Решение:** Выполните миграцию ```bash 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 запросов - Ошибки валидации данных