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