Files
rltn/MIGRATION_FIX.md

102 lines
3.7 KiB
Markdown
Raw Permalink 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.

# Исправление проблемы с миграцией
## 🚨 Проблема
Ошибка: `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) | Текстуры |
## 🎯 Результат:
После выполнения любого из решений редактор карт должен работать корректно с сохранением в БД.