# Исправление проблемы с миграцией

## 🚨 Проблема
Ошибка: `column "created_at" of relation "city_objects" does not exist`

## 🔧 Решения (по порядку приоритета):

### **Решение 1: Минимальная миграция**
```bash
node run-minimal-migration.js
```

### **Решение 2: Прямое создание таблицы**
1. Откройте pgAdmin или подключитесь к БД через psql
2. Выполните SQL из файла `create-table-direct.sql`
3. Или скопируйте и выполните этот код:

```sql
DROP TABLE IF EXISTS city_objects CASCADE;

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 '-'
);

CREATE INDEX idx_city_objects_city_id ON city_objects(city_id);
CREATE INDEX idx_city_objects_organization_id ON city_objects(organization_id);
CREATE INDEX idx_city_objects_interior_id ON city_objects(interior_id);
CREATE INDEX idx_city_objects_position ON city_objects(pos_x, pos_y, pos_z);
CREATE INDEX idx_city_objects_collidable ON city_objects(collidable);
```

### **Решение 3: Проверка через редактор**
1. Откройте редактор карт
2. Нажмите кнопку "Проверить БД"
3. Если таблица существует, проблема решена

## ✅ После создания таблицы:

1. **Перезапустите сервер:**
   ```bash
   npm start
   ```

2. **Проверьте работу редактора:**
   - Откройте редактор карт
   - Попробуйте добавить объект
   - Проверьте сохранение в БД

## 🔍 Диагностика:

### **Проверка таблицы:**
```sql
SELECT table_name, column_name, data_type 
FROM information_schema.columns 
WHERE table_name = 'city_objects' 
ORDER BY ordinal_position;
```

### **Проверка записей:**
```sql
SELECT COUNT(*) FROM city_objects;
```

## 📋 Структура таблицы:

| Колонка | Тип | Описание |
|---------|-----|----------|
| id | SERIAL | Primary Key |
| city_id | INTEGER | ID города |
| name | VARCHAR(255) | Название объекта |
| model_url | VARCHAR(500) | URL модели |
| pos_x, pos_y, pos_z | DECIMAL(15,6) | Координаты |
| rot_x, rot_y, rot_z | DECIMAL(15,6) | Поворот |
| scale_x, scale_y, scale_z | DECIMAL(15,6) | Масштаб |
| organization_id | INTEGER | ID организации |
| rent | DECIMAL(10,2) | Аренда |
| tax | DECIMAL(10,2) | Налог |
| collidable | BOOLEAN | Коллизия |
| interior_id | INTEGER | ID интерьера |
| textures | VARCHAR(500) | Текстуры |

## 🎯 Результат:
После выполнения любого из решений редактор карт должен работать корректно с сохранением в БД.
