127 lines
4.7 KiB
Markdown
127 lines
4.7 KiB
Markdown
|
|
# Скрипт удаления всех альбомов и треков
|
|||
|
|
|
|||
|
|
## Описание
|
|||
|
|
|
|||
|
|
Скрипт `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
|
|||
|
|
```
|
|||
|
|
|