# Скрипт удаления всех альбомов и треков ## Описание Скрипт `deleteAllMusic.js` безвозвратно удаляет все музыкальные данные из базы данных: - Все треки (Tracks) - Все альбомы (Albums) - Все избранные треки (FavoriteTrack) - Все ссылки на треки в постах (attachedTrack устанавливается в null) **⚠️ ВНИМАНИЕ: Это действие необратимо!** ## Использование ### Шаг 1: Проверка подключения и данных Сначала проверьте, что скрипт может подключиться к базе и видит данные: ```cmd node backend/scripts/testDeleteMusic.js ``` Этот скрипт покажет статистику без удаления данных. ### Шаг 2: Удаление данных ### Для Windows (CMD/PowerShell): ```cmd cd backend node scripts\deleteAllMusic.js ``` ### Для Linux/Mac: ```bash cd backend node scripts/deleteAllMusic.js ``` ### Или из корня проекта: ```cmd node backend/scripts/deleteAllMusic.js ``` **Примечание:** Скрипт покажет предупреждение и подождет 3 секунды перед удалением. Нажмите Ctrl+C для отмены, если передумали. ## Что делает скрипт 1. **Подключается к MongoDB** используя настройки из `.env` 2. **Показывает статистику** текущего количества записей 3. **Удаляет данные в следующем порядке:** - Избранные треки (FavoriteTrack) - Обнуляет attachedTrack в постах - Удаляет все треки (Track) - Удаляет все альбомы (Album) 4. **Показывает финальную статистику** ## Пример вывода ``` 🔌 Подключение к MongoDB... ✅ Подключено к MongoDB 📊 Текущая статистика: - Треков: 150 - Альбомов: 25 - Избранных треков: 500 - Постов с прикрепленными треками: 80 🗑️ Начало удаления... 1️⃣ Удаление избранных треков... ✅ Удалено избранных треков: 500 2️⃣ Обнуление прикрепленных треков в постах... ✅ Обновлено постов: 80 3️⃣ Удаление треков... ✅ Удалено треков: 150 4️⃣ Удаление альбомов... ✅ Удалено альбомов: 25 📊 Финальная статистика: - Треков: 0 - Альбомы: 0 - Избранных треков: 0 - Постов с прикрепленными треками: 0 ✅ Все альбомы и треки успешно удалены! 🔌 Отключено от MongoDB ``` ## Важные замечания - ⚠️ **Физические файлы не удаляются** - скрипт удаляет только записи из базы данных. Файлы в `backend/uploads/music/` остаются на диске. Для полной очистки нужно вручную удалить файлы. - ⚠️ **Исполнители (Artists) не удаляются** - они остаются в базе, так как могут быть переиспользованы при загрузке новых треков. - ✅ **Посты не удаляются** - только обнуляется поле `attachedTrack`. ## Дополнительная очистка файлов Если нужно также удалить физические файлы (аудио и обложки): ### Windows (PowerShell): ```powershell # Удалить все файлы в папке музыки (сохранив структуру папок) Remove-Item -Path "backend\uploads\music\*" -Include *.mp3,*.wav,*.ogg,*.m4a,*.flac,*.jpg,*.jpeg,*.png -Force # Или полностью удалить папку и создать заново Remove-Item -Path "backend\uploads\music" -Recurse -Force New-Item -Path "backend\uploads\music" -ItemType Directory ``` ### Linux/Mac: ```bash # Удалить все файлы в папке музыки rm -f backend/uploads/music/*.{mp3,wav,ogg,m4a,flac,jpg,jpeg,png} # Или полностью удалить папку и создать заново rm -rf backend/uploads/music mkdir -p backend/uploads/music ``` ## Восстановление после удаления После выполнения скрипта невозможно восстановить удаленные данные из базы данных. Если у вас есть резервная копия (backup), вы можете восстановить данные из неё. Для создания резервной копии перед удалением используйте: ```cmd node backend/scripts/backup.js ```