Files
drone-detector/server/seedDatabase.js
2025-08-17 06:05:25 +02:00

60 lines
1.6 KiB
JavaScript

const bcrypt = require('bcryptjs');
const { User, Device } = require('./models');
async function seedDatabase() {
try {
console.log('🌱 Seeding database...');
// Check if admin user exists
const existingAdmin = await User.findOne({ where: { username: 'admin' } });
if (!existingAdmin) {
// Create default admin user
const adminPassword = await bcrypt.hash('admin123', 10);
await User.create({
username: 'admin',
email: 'admin@dronedetection.local',
password_hash: adminPassword,
first_name: 'System',
last_name: 'Administrator',
role: 'admin',
is_active: true,
sms_alerts_enabled: false,
email_alerts_enabled: false,
timezone: 'Europe/Stockholm'
});
console.log('✅ Admin user created (username: admin, password: admin123)');
} else {
console.log('✅ Admin user already exists');
}
// Create a sample device if none exist
const deviceCount = await Device.count();
if (deviceCount === 0) {
await Device.create({
name: 'Drone Detector Alpha',
geo_lat: 59.3293,
geo_lon: 18.0686,
location_description: 'Stockholm Central',
is_active: true,
last_heartbeat: new Date(),
heartbeat_interval: 300,
firmware_version: '1.0.0'
});
console.log('✅ Sample device created');
} else {
console.log('✅ Devices already exist');
}
console.log('🌱 Database seeding completed');
} catch (error) {
console.error('❌ Database seeding failed:', error);
throw error;
}
}
module.exports = seedDatabase;