Files
rltn/migrate-colliders.js

61 lines
2.0 KiB
JavaScript

// Скрипт для выполнения миграции таблицы colliders
// Файл: migrate-colliders.js
const fs = require('fs');
const path = require('path');
const { query } = require('./db');
async function runMigration() {
try {
console.log('🚀 Запуск миграции для создания таблицы colliders...');
// Читаем SQL файл миграции
const migrationPath = path.join(__dirname, 'migrations', 'create_colliders_table.sql');
const migrationSQL = fs.readFileSync(migrationPath, 'utf8');
// Выполняем миграцию
await query(migrationSQL);
console.log('✅ Миграция успешно выполнена!');
console.log('📊 Таблица colliders создана');
// Проверяем, что таблица создана
const result = await query(`
SELECT column_name, data_type, is_nullable
FROM information_schema.columns
WHERE table_name = 'colliders'
ORDER BY ordinal_position
`);
console.log('📋 Структура таблицы colliders:');
result.rows.forEach(row => {
console.log(` - ${row.column_name}: ${row.data_type} (${row.is_nullable === 'YES' ? 'nullable' : 'not null'})`);
});
// Проверяем индексы
const indexes = await query(`
SELECT indexname, indexdef
FROM pg_indexes
WHERE tablename = 'colliders'
`);
console.log('🔍 Индексы:');
indexes.rows.forEach(row => {
console.log(` - ${row.indexname}`);
});
} catch (error) {
console.error('❌ Ошибка при выполнении миграции:', error);
process.exit(1);
}
}
// Запускаем миграцию
runMigration().then(() => {
console.log('🎉 Миграция завершена успешно!');
process.exit(0);
}).catch(error => {
console.error('💥 Критическая ошибка:', error);
process.exit(1);
});