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

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

### Шаг 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 запросов
- Ошибки валидации данных
