![]() Server : Apache/2 System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 User : gositeme ( 1004) PHP Version : 8.2.29 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/gositeme/.cursor-server/data/User/History/-54fcf53f/ |
<?php
// Script to fix existing tracks by extracting metadata from JSON and populating individual columns
require_once 'config/database.php';
echo "đ§ Fixing existing tracks metadata...\n\n";
$pdo = getDBConnection();
if (!$pdo) {
echo "â Failed to connect to database\n";
exit(1);
}
try {
// Get all tracks that have metadata but empty individual fields
$stmt = $pdo->prepare("
SELECT id, task_id, title, metadata, genre, bpm, `key`, mood, energy, instruments, tags, lyrics
FROM music_tracks
WHERE metadata IS NOT NULL AND metadata != 'null' AND metadata != ''
AND (genre IS NULL OR genre = '' OR bpm IS NULL OR key IS NULL OR mood IS NULL OR energy IS NULL OR instruments IS NULL)
");
$stmt->execute();
$tracks = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo "đ Found " . count($tracks) . " tracks to fix\n\n";
$fixed = 0;
$errors = 0;
foreach ($tracks as $track) {
echo "đĩ Processing track: {$track['title']} (ID: {$track['id']})\n";
try {
$metadata = json_decode($track['metadata'], true);
if (!$metadata) {
echo " â ī¸ Invalid JSON metadata, skipping\n";
continue;
}
// Build update query
$updates = [];
$params = [];
// Extract individual fields
if (isset($metadata['genre']) && !empty($metadata['genre'])) {
$updates[] = 'genre = ?';
$params[] = $metadata['genre'];
echo " đ Genre: {$metadata['genre']}\n";
}
if (isset($metadata['style']) && !empty($metadata['style'])) {
$updates[] = 'style = ?';
$params[] = $metadata['style'];
echo " đ¨ Style: {$metadata['style']}\n";
}
if (isset($metadata['bpm']) && !empty($metadata['bpm'])) {
$updates[] = 'bpm = ?';
$params[] = $metadata['bpm'];
echo " đĨ BPM: {$metadata['bpm']}\n";
}
if (isset($metadata['key']) && !empty($metadata['key'])) {
$updates[] = 'key = ?';
$params[] = $metadata['key'];
echo " đŧ Key: {$metadata['key']}\n";
}
if (isset($metadata['time_signature']) && !empty($metadata['time_signature'])) {
$updates[] = 'time_signature = ?';
$params[] = $metadata['time_signature'];
echo " âąī¸ Time Signature: {$metadata['time_signature']}\n";
}
if (isset($metadata['mood']) && !empty($metadata['mood'])) {
$updates[] = 'mood = ?';
$params[] = $metadata['mood'];
echo " đ Mood: {$metadata['mood']}\n";
}
if (isset($metadata['energy']) && !empty($metadata['energy'])) {
$updates[] = 'energy = ?';
$params[] = $metadata['energy'];
echo " ⥠Energy: {$metadata['energy']}\n";
}
if (isset($metadata['instruments']) && !empty($metadata['instruments'])) {
$instruments = is_array($metadata['instruments']) ? implode(', ', $metadata['instruments']) : $metadata['instruments'];
$updates[] = 'instruments = ?';
$params[] = $instruments;
echo " đ¸ Instruments: {$instruments}\n";
}
if (isset($metadata['tags']) && !empty($metadata['tags'])) {
$tags = is_array($metadata['tags']) ? implode(', ', $metadata['tags']) : $metadata['tags'];
$updates[] = 'tags = ?';
$params[] = $tags;
echo " đˇī¸ Tags: {$tags}\n";
}
// Check if we have any updates to make
if (empty($updates)) {
echo " âšī¸ No metadata fields to update\n";
continue;
}
// Add track ID to params
$params[] = $track['id'];
// Execute update
$sql = "UPDATE music_tracks SET " . implode(', ', $updates) . " WHERE id = ?";
$updateStmt = $pdo->prepare($sql);
$result = $updateStmt->execute($params);
if ($result) {
echo " â
Updated successfully\n";
$fixed++;
} else {
echo " â Update failed\n";
$errors++;
}
} catch (Exception $e) {
echo " â Error processing track: " . $e->getMessage() . "\n";
$errors++;
}
echo "\n";
}
echo "đ Metadata fix complete!\n";
echo "â
Fixed: $fixed tracks\n";
echo "â Errors: $errors tracks\n";
echo "đ Total processed: " . count($tracks) . " tracks\n";
} catch (Exception $e) {
echo "â Fatal error: " . $e->getMessage() . "\n";
exit(1);
}
?>