import { Pool } from 'pg'; import 'dotenv/config'; async function getDatabaseInfo() { const pool = new Pool({ host: process.env.DB_HOST, port: parseInt(process.env.DB_PORT || '5432'), database: process.env.DB_NAME, user: process.env.DB_USERNAME, password: process.env.DB_PASSWORD }); try { console.log('Подключение к базе данных...'); // Получаем информацию о пользователях console.log('\n=== ПОЛЬЗОВАТЕЛИ ==='); const usersResult = await pool.query(` SELECT id, telegram_id, username, first_name, last_name, premium, created_at FROM users ORDER BY created_at DESC `); console.log(`Всего пользователей: ${usersResult.rows.length}`); console.table(usersResult.rows); // Получаем информацию о профилях console.log('\n=== ПРОФИЛИ ==='); const profilesResult = await pool.query(` SELECT p.user_id, u.telegram_id, u.first_name, p.age, p.gender, p.interested_in as "интересуется", p.bio, p.dating_goal as "цель_знакомства", p.is_visible, p.created_at FROM profiles p JOIN users u ON p.user_id = u.id ORDER BY p.created_at DESC `); console.log(`Всего профилей: ${profilesResult.rows.length}`); console.table(profilesResult.rows); // Получаем информацию о свайпах console.log('\n=== СВАЙПЫ ==='); // Сначала проверим, какие столбцы есть в таблице swipes console.log('Получение структуры таблицы swipes...'); const swipesColumns = await pool.query(` SELECT column_name, data_type FROM information_schema.columns WHERE table_name = 'swipes' `); console.log('Структура таблицы swipes:'); console.table(swipesColumns.rows); // Теперь запросим данные, используя правильные имена столбцов const swipesResult = await pool.query(` SELECT s.id, s.user_id, u1.first_name as "от_кого", s.target_user_id, u2.first_name as "кому", s.type, s.created_at FROM swipes s JOIN users u1 ON s.user_id = u1.id JOIN users u2 ON s.target_user_id = u2.id ORDER BY s.created_at DESC `); console.log(`Всего свайпов: ${swipesResult.rows.length}`); console.table(swipesResult.rows); // Получаем информацию о матчах console.log('\n=== МАТЧИ ==='); // Сначала проверим, какие столбцы есть в таблице matches console.log('Получение структуры таблицы matches...'); const matchesColumns = await pool.query(` SELECT column_name, data_type FROM information_schema.columns WHERE table_name = 'matches' `); console.log('Структура таблицы matches:'); console.table(matchesColumns.rows); // Теперь запросим данные, используя правильные имена столбцов const matchesResult = await pool.query(` SELECT m.id, m.user_id_1, u1.first_name as "пользователь_1", m.user_id_2, u2.first_name as "пользователь_2", m.is_active, m.created_at FROM matches m JOIN users u1 ON m.user_id_1 = u1.id JOIN users u2 ON m.user_id_2 = u2.id ORDER BY m.created_at DESC `); console.log(`Всего матчей: ${matchesResult.rows.length}`); console.table(matchesResult.rows); } catch (error) { console.error('Ошибка при получении данных:', error); } finally { await pool.end(); } } getDatabaseInfo();