load(); // Load configuration require_once __DIR__ . '/../config/config.php'; try { $pdo = new PDO( sprintf('mysql:host=%s;port=%d;dbname=%s;charset=utf8mb4', DB_HOST, DB_PORT, DB_NAME), DB_USER, DB_PASS, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, ] ); echo "Connected to database successfully.\n"; // Check if users table has data $stmt = $pdo->query("SELECT COUNT(*) as count FROM users"); $userCount = $stmt->fetch()['count']; if ($userCount > 0) { echo "Database already has data. Skipping seeders.\n"; exit(0); } echo "Database is empty. Running seeders...\n"; // Get all seeder files $seederFiles = glob(__DIR__ . '/../database/seeds/*.sql'); sort($seederFiles); foreach ($seederFiles as $file) { $seederName = basename($file); echo "Running seeder: {$seederName}\n"; // Read and execute seeder $sql = file_get_contents($file); try { $pdo->exec($sql); echo "Seeder {$seederName} executed successfully.\n"; } catch (PDOException $e) { echo "Error executing seeder {$seederName}: " . $e->getMessage() . "\n"; exit(1); } } // Create default admin user with proper password hash echo "Creating default admin user...\n"; $adminPassword = 'Admin!234'; $adminHash = password_hash($adminPassword, PASSWORD_ARGON2ID); $stmt = $pdo->prepare(" UPDATE users SET passhash = ? WHERE email = 'admin@example.com' "); $stmt->execute([$adminHash]); echo "Default admin user created:\n"; echo "Email: admin@example.com\n"; echo "Password: {$adminPassword}\n"; echo "Please change the password on first login!\n"; echo "Database seeding completed successfully.\n"; } catch (PDOException $e) { echo "Database connection failed: " . $e->getMessage() . "\n"; exit(1); }