nakama/DELETE_MUSIC.md

127 lines
4.7 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Скрипт удаления всех альбомов и треков
## Описание
Скрипт `deleteAllMusic.js` безвозвратно удаляет все музыкальные данные из базы данных:
- Все треки (Tracks)
- Все альбомы (Albums)
- Все избранные треки (FavoriteTrack)
- Все ссылки на треки в постах (attachedTrack устанавливается в null)
**⚠️ ВНИМАНИЕ: Это действие необратимо!**
## Использование
### Для 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
```
## Что делает скрипт
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
```