const db = require('../models'); /** * Test database connection */ async function testConnection() { try { await db.sequelize.authenticate(); console.log('✅ Database connection verified'); return true; } catch (error) { console.error('❌ Database connection failed:', error.message); return false; } } /** * Sync all models with database * WARNING: Use with caution in production */ async function syncModels(options = {}) { try { await db.sequelize.sync(options); console.log('✅ Models synchronized with database'); return true; } catch (error) { console.error('❌ Model synchronization failed:', error.message); return false; } } /** * Close database connection */ async function closeConnection() { try { await db.sequelize.close(); console.log('✅ Database connection closed'); return true; } catch (error) { console.error('❌ Failed to close database connection:', error.message); return false; } } /** * Get database statistics */ async function getDatabaseStats() { try { const [tables] = await db.sequelize.query('SHOW TABLES'); const [version] = await db.sequelize.query('SELECT VERSION() as version'); return { connected: true, version: version[0].version, tables: tables.length, database: db.sequelize.config.database }; } catch (error) { return { connected: false, error: error.message }; } } module.exports = { db, testConnection, syncModels, closeConnection, getDatabaseStats };