Files
rltn/run-minimal-migration.js

59 lines
2.4 KiB
JavaScript
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.

#!/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();