61 lines
2.0 KiB
JavaScript
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);
|
|
});
|