add changes
This commit is contained in:
74
config/db.js
Normal file
74
config/db.js
Normal file
@@ -0,0 +1,74 @@
|
||||
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
|
||||
};
|
||||
Reference in New Issue
Block a user