Files
rltn/FIXES_APPLIED.md

3.6 KiB
Raw Permalink Blame History

Исправления проблем редактора карт

Исправленные проблемы:

1. Ошибка scale.x.toFixed is not a function

Проблема: Объекты Three.js могут иметь неинициализированные свойства scale Решение: Добавлена проверка типов перед вызовом .toFixed()

// Безопасное получение масштаба
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. Ошибка больше не должна возникать.

Для исправления миграции:

# Используйте простую миграцию вместо сложной
node run-simple-migration.js

Проверка результата:

  1. Откройте редактор карт
  2. Нажмите кнопку "Проверить БД"
  3. Должно показать: "Таблица существует: true"

📋 Что было исправлено:

В MapEditor.jsx:

  • Безопасная обработка координат, поворота и масштаба
  • Проверка типов перед вызовом .toFixed()
  • Значения по умолчанию для неинициализированных свойств

В миграции:

  • Создана простая версия без триггеров
  • Убраны сложные зависимости
  • Добавлена проверка существования таблицы

🔧 Альтернативные решения:

Если простая миграция не работает:

-- Создайте таблицу вручную в 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 больше не возникают
  • Миграция выполняется без ошибок
  • Редактор карт работает стабильно