Files
rltn/DB_TROUBLESHOOTING.md

91 lines
2.9 KiB
Markdown
Raw Permalink Normal View History

# Диагностика проблем с базой данных
## Проблема: Сохранение в БД не работает
### Шаг 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 запросов
- Ошибки валидации данных