59 lines
2.4 KiB
JavaScript
59 lines
2.4 KiB
JavaScript
#!/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();
|