4.7 KiB
Скрипт удаления всех альбомов и треков
Описание
Скрипт deleteAllMusic.js безвозвратно удаляет все музыкальные данные из базы данных:
- Все треки (Tracks)
- Все альбомы (Albums)
- Все избранные треки (FavoriteTrack)
- Все ссылки на треки в постах (attachedTrack устанавливается в null)
⚠️ ВНИМАНИЕ: Это действие необратимо!
Использование
Для Windows (CMD/PowerShell):
cd backend
node scripts\deleteAllMusic.js
Для Linux/Mac:
cd backend
node scripts/deleteAllMusic.js
Или из корня проекта:
node backend/scripts/deleteAllMusic.js
Что делает скрипт
- Подключается к MongoDB используя настройки из
.env - Показывает статистику текущего количества записей
- Удаляет данные в следующем порядке:
- Избранные треки (FavoriteTrack)
- Обнуляет attachedTrack в постах
- Удаляет все треки (Track)
- Удаляет все альбомы (Album)
- Показывает финальную статистику
Пример вывода
🔌 Подключение к 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):
# Удалить все файлы в папке музыки (сохранив структуру папок)
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:
# Удалить все файлы в папке музыки
rm -f backend/uploads/music/*.{mp3,wav,ogg,m4a,flac,jpg,jpeg,png}
# Или полностью удалить папку и создать заново
rm -rf backend/uploads/music
mkdir -p backend/uploads/music
Восстановление после удаления
После выполнения скрипта невозможно восстановить удаленные данные из базы данных. Если у вас есть резервная копия (backup), вы можете восстановить данные из неё.
Для создания резервной копии перед удалением используйте:
node backend/scripts/backup.js