require('dotenv').config(); const db = require('../models'); async function testDatabaseConnection() { console.log('\nšŸ” Testing Database Connection...\n'); console.log('Configuration:'); console.log('- Host:', process.env.DB_HOST); console.log('- Port:', process.env.DB_PORT); console.log('- Database:', process.env.DB_NAME); console.log('- User:', process.env.DB_USER); console.log('- Dialect:', process.env.DB_DIALECT); console.log('\n'); try { // Test connection await db.sequelize.authenticate(); console.log('āœ… Connection has been established successfully.\n'); // Get database version const [results] = await db.sequelize.query('SELECT VERSION() as version'); console.log('šŸ“Š MySQL Version:', results[0].version); // Check if database exists const [databases] = await db.sequelize.query('SHOW DATABASES'); const dbExists = databases.some(d => d.Database === process.env.DB_NAME); if (dbExists) { console.log(`āœ… Database '${process.env.DB_NAME}' exists.\n`); // Show tables in database const [tables] = await db.sequelize.query(`SHOW TABLES FROM ${process.env.DB_NAME}`); console.log(`šŸ“‹ Tables in '${process.env.DB_NAME}':`, tables.length > 0 ? tables.length : 'No tables yet'); if (tables.length > 0) { tables.forEach(table => { const tableName = table[`Tables_in_${process.env.DB_NAME}`]; console.log(` - ${tableName}`); }); } } else { console.log(`āš ļø Database '${process.env.DB_NAME}' does not exist.`); console.log(`\nTo create it, run:`); console.log(`mysql -u ${process.env.DB_USER} -p -e "CREATE DATABASE ${process.env.DB_NAME} CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"`); } console.log('\nāœ… Database connection test completed successfully!\n'); process.exit(0); } catch (error) { console.error('\nāŒ Database connection test failed:'); console.error('Error:', error.message); console.error('\nPlease ensure:'); console.error('1. MySQL server is running'); console.error('2. Database credentials in .env are correct'); console.error('3. Database exists (or create it with the command above)'); console.error('4. User has proper permissions\n'); process.exit(1); } } testDatabaseConnection();