#!/usr/bin/env node /** * Минимальный скрипт для создания таблицы city_objects * Запуск: node run-minimal-migration.js */ const fs = require('fs'); const path = require('path'); const db = require('./db'); async function runMigration() { try { console.log('🚀 Запуск минимальной миграции для создания таблицы city_objects...'); // Читаем минимальный SQL файл миграции const migrationPath = path.join(__dirname, 'migrations', 'create_city_objects_table_minimal.sql'); const migrationSQL = fs.readFileSync(migrationPath, 'utf8'); console.log('📄 Загружен файл миграции:', migrationPath); // Выполняем миграцию await db.query(migrationSQL); console.log('✅ Минимальная миграция успешно выполнена!'); console.log('📊 Таблица city_objects создана со всеми необходимыми индексами'); // Проверяем, что таблица создалась const { rows } = await db.query(` SELECT table_name, column_name, data_type, is_nullable, column_default FROM information_schema.columns WHERE table_name = 'city_objects' ORDER BY ordinal_position `); console.log('\n📋 Структура созданной таблицы:'); console.table(rows); // Проверяем количество записей const { rows: countRows } = await db.query('SELECT COUNT(*) as count FROM city_objects'); console.log(`\n📈 Количество записей в таблице: ${countRows[0].count}`); console.log('\n✅ Миграция завершена успешно!'); console.log('🎯 Теперь можно использовать редактор карт'); } catch (error) { console.error('❌ Ошибка при выполнении миграции:', error); console.error('💡 Попробуйте выполнить SQL вручную в pgAdmin или psql'); process.exit(1); } finally { // Закрываем соединение с БД await db.end(); console.log('🔌 Соединение с базой данных закрыто'); } } // Запускаем миграцию runMigration();