Files
rltn/DB_TROUBLESHOOTING.md

91 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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