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