51 lines
1.8 KiB
JavaScript
51 lines
1.8 KiB
JavaScript
|
|
#!/usr/bin/env node
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Скрипт для создания таблицы city_objects
|
|||
|
|
* Запуск: node run-city-objects-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.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);
|
|||
|
|
|
|||
|
|
} catch (error) {
|
|||
|
|
console.error('❌ Ошибка при выполнении миграции:', error);
|
|||
|
|
process.exit(1);
|
|||
|
|
} finally {
|
|||
|
|
// Закрываем соединение с БД
|
|||
|
|
await db.end();
|
|||
|
|
console.log('🔌 Соединение с базой данных закрыто');
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Запускаем миграцию
|
|||
|
|
runMigration();
|