89 lines
3.1 KiB
JavaScript
89 lines
3.1 KiB
JavaScript
const { Sequelize } = require('sequelize');
|
|
const config = require('../config/database');
|
|
|
|
const sequelize = new Sequelize(
|
|
config.development.database,
|
|
config.development.username,
|
|
config.development.password,
|
|
{
|
|
host: config.development.host,
|
|
dialect: config.development.dialect,
|
|
logging: false
|
|
}
|
|
);
|
|
|
|
async function verifyData() {
|
|
try {
|
|
await sequelize.authenticate();
|
|
console.log('✅ Database connection established\n');
|
|
|
|
// Get counts from each table
|
|
const [categories] = await sequelize.query('SELECT COUNT(*) as count FROM categories');
|
|
const [users] = await sequelize.query('SELECT COUNT(*) as count FROM users');
|
|
const [questions] = await sequelize.query('SELECT COUNT(*) as count FROM questions');
|
|
const [achievements] = await sequelize.query('SELECT COUNT(*) as count FROM achievements');
|
|
|
|
console.log('📊 Seeded Data Summary:');
|
|
console.log('========================');
|
|
console.log(`Categories: ${categories[0].count} rows`);
|
|
console.log(`Users: ${users[0].count} rows`);
|
|
console.log(`Questions: ${questions[0].count} rows`);
|
|
console.log(`Achievements: ${achievements[0].count} rows`);
|
|
console.log('========================\n');
|
|
|
|
// Verify category names
|
|
const [categoryList] = await sequelize.query('SELECT name, slug, guest_accessible FROM categories ORDER BY display_order');
|
|
console.log('📁 Categories:');
|
|
categoryList.forEach(cat => {
|
|
console.log(` - ${cat.name} (${cat.slug}) ${cat.guest_accessible ? '🔓 Guest' : '🔒 Auth'}`);
|
|
});
|
|
console.log('');
|
|
|
|
// Verify admin user
|
|
const [adminUser] = await sequelize.query("SELECT username, email, role FROM users WHERE email = 'admin@quiz.com'");
|
|
if (adminUser.length > 0) {
|
|
console.log('👤 Admin User:');
|
|
console.log(` - Username: ${adminUser[0].username}`);
|
|
console.log(` - Email: ${adminUser[0].email}`);
|
|
console.log(` - Role: ${adminUser[0].role}`);
|
|
console.log(' - Password: Admin@123');
|
|
console.log('');
|
|
}
|
|
|
|
// Verify questions by category
|
|
const [questionsByCategory] = await sequelize.query(`
|
|
SELECT c.name, COUNT(q.id) as count
|
|
FROM categories c
|
|
LEFT JOIN questions q ON c.id = q.category_id
|
|
GROUP BY c.id, c.name
|
|
ORDER BY c.display_order
|
|
`);
|
|
console.log('❓ Questions by Category:');
|
|
questionsByCategory.forEach(cat => {
|
|
console.log(` - ${cat.name}: ${cat.count} questions`);
|
|
});
|
|
console.log('');
|
|
|
|
// Verify achievements by category
|
|
const [achievementsByCategory] = await sequelize.query(`
|
|
SELECT category, COUNT(*) as count
|
|
FROM achievements
|
|
GROUP BY category
|
|
ORDER BY category
|
|
`);
|
|
console.log('🏆 Achievements by Category:');
|
|
achievementsByCategory.forEach(cat => {
|
|
console.log(` - ${cat.category}: ${cat.count} achievements`);
|
|
});
|
|
console.log('');
|
|
|
|
console.log('✅ All data seeded successfully!');
|
|
process.exit(0);
|
|
} catch (error) {
|
|
console.error('❌ Error verifying data:', error.message);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
verifyData();
|