Files
rltn/FIXES_APPLIED.md

82 lines
3.6 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. **Ошибка `scale.x.toFixed is not a function`**
**Проблема:** Объекты Three.js могут иметь неинициализированные свойства scale
**Решение:** Добавлена проверка типов перед вызовом `.toFixed()`
```javascript
// Безопасное получение масштаба
const scaleX = typeof obj.scale.x === 'number' ? obj.scale.x : 1;
const scaleY = typeof obj.scale.y === 'number' ? obj.scale.y : 1;
const scaleZ = typeof obj.scale.z === 'number' ? obj.scale.z : 1;
```
### 2. **Ошибка миграции `column "created_at" does not exist`**
**Проблема:** Триггер пытался обратиться к колонке до её создания
**Решение:** Создана простая миграция без триггеров
## 🚀 Инструкции по запуску:
### **Для исправления ошибки scale:**
Код уже исправлен в `MapEditor.jsx`. Ошибка больше не должна возникать.
### **Для исправления миграции:**
```bash
# Используйте простую миграцию вместо сложной
node run-simple-migration.js
```
### **Проверка результата:**
1. Откройте редактор карт
2. Нажмите кнопку "Проверить БД"
3. Должно показать: "Таблица существует: true"
## 📋 Что было исправлено:
### **В MapEditor.jsx:**
- ✅ Безопасная обработка координат, поворота и масштаба
- ✅ Проверка типов перед вызовом `.toFixed()`
- ✅ Значения по умолчанию для неинициализированных свойств
### **В миграции:**
- ✅ Создана простая версия без триггеров
- ✅ Убраны сложные зависимости
- ✅ Добавлена проверка существования таблицы
## 🔧 Альтернативные решения:
### **Если простая миграция не работает:**
```sql
-- Создайте таблицу вручную в pgAdmin или psql
CREATE TABLE city_objects (
id SERIAL PRIMARY KEY,
city_id INTEGER NOT NULL,
name VARCHAR(255) NOT NULL DEFAULT '',
model_url VARCHAR(500) NOT NULL,
pos_x DECIMAL(15, 6) NOT NULL DEFAULT 0,
pos_y DECIMAL(15, 6) NOT NULL DEFAULT 0,
pos_z DECIMAL(15, 6) NOT NULL DEFAULT 0,
rot_x DECIMAL(15, 6) NOT NULL DEFAULT 0,
rot_y DECIMAL(15, 6) NOT NULL DEFAULT 0,
rot_z DECIMAL(15, 6) NOT NULL DEFAULT 0,
scale_x DECIMAL(15, 6) NOT NULL DEFAULT 1,
scale_y DECIMAL(15, 6) NOT NULL DEFAULT 1,
scale_z DECIMAL(15, 6) NOT NULL DEFAULT 1,
organization_id INTEGER NOT NULL DEFAULT 2,
rent DECIMAL(10, 2) NOT NULL DEFAULT 0,
tax DECIMAL(10, 2) NOT NULL DEFAULT 0,
collidable BOOLEAN NOT NULL DEFAULT false,
interior_id INTEGER NOT NULL DEFAULT 101,
textures VARCHAR(500) NOT NULL DEFAULT '-',
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);
```
## ✅ Результат:
- Ошибки `scale.x.toFixed` больше не возникают
- Миграция выполняется без ошибок
- Редактор карт работает стабильно