# Исправления проблем редактора карт ## ✅ Исправленные проблемы: ### 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` больше не возникают - Миграция выполняется без ошибок - Редактор карт работает стабильно