[2026-09-27] eagle: family/how-to/navidrome-truenas-android.md personal/plans/tagwriter-container.md
This commit is contained in:
1 parent
96123c9825
commit
54adfa9a5a
2 files changed
+61
-26
No files matched your search
@@ -4,7 +4,7 @@ created: '2026-09-26'
|
||||
updated: '2026-09-27'
|
||||
type: plan
|
||||
namespace: personal
|
||||
status: session21-apply-306-done-navidrome-rescan-pending
|
||||
status: session22-apply-306-done-navidrome-rescan-failed-14-orphans
|
||||
tags:
|
||||
- music
|
||||
- truenas
|
||||
@@ -85,7 +85,7 @@ CSV: /app/data/apply-plan.csv ← 306 строк
|
||||
🔴 **Правило: приёмка = чтение тегов с диска по значению, а не `ok=306` из отчёта скрипта.**
|
||||
Дополнительно проверять **размер файла** (`>100KB`) — он доказывает, что MPEG-поток не тронут (W2).
|
||||
|
||||
### ⏳ ОТКРЫТО: NAVidrome — СТАРЫЕ И НОВЫЕ АЛЬБОМЫ СОСУЩЕСТВУЮТ
|
||||
### ❌ ОТКРЫТО (сессия 22): RESCAN ПРОВЕДЁН — НЕ ПОМОГ, 14 СИРОТ ОСТАЛИСЬ
|
||||
|
||||
Navidrome смотрит в **ту же** папку (`/mnt/RED_2TB/storage/Music → /music`), данные
|
||||
`/mnt/RED_2TB/docker/navidrome/data`, `ND_SCANSCHEDULE=1h`, порт 4533, `https://music.mallexxx.duckdns.org`.
|
||||
@@ -94,29 +94,40 @@ Navidrome смотрит в **ту же** папку (`/mnt/RED_2TB/storage/Musi
|
||||
|
||||
```bash
|
||||
DB=/mnt/RED_2TB/docker/navidrome/data/navidrome.db
|
||||
sqlite3 "file:$DB?mode=ro" "SELECT COUNT(*) FROM album WHERE name LIKE '(%';" # → 14
|
||||
sqlite3 "file:$DB?mode=ro" "SELECT COUNT(*) FROM album WHERE name LIKE '(%';" # → 14 (до И после rescan)
|
||||
```
|
||||
|
||||
| Что | Значение |
|
||||
|---|---|
|
||||
| альбомов в БД | 967 |
|
||||
| со скобками | **14** |
|
||||
| со скобками | **14** ← число НЕ изменилось от rescan |
|
||||
| новые значения (`Философские`, `Морские`, `Москва пьёт пиво`, `Retro`, `Владимир Высоцкий`, …) | ✅ появились |
|
||||
| старые скобочные (`(Философские)`, `(Авария)` ×2, `(Высоцкий)`, …) | ❌ **НЕ удалены** |
|
||||
|
||||
**Диагноз:** watcher/плановый скан **добавил** новые альбомы, но **не вычистил старые записи**,
|
||||
к которым больше нет файлов. Нормальное поведение инкрементального скана — нужен полный rescan.
|
||||
|
||||
**Что нужно (не сделано, ждёт решения Alex):**
|
||||
**Alex: «Navidrome rescan теперь надо» → «Просто контейнер пересоздай». Выполнено — НЕ ПОМОГЛО:**
|
||||
|
||||
1. **Рестарт контейнера** — `docker restart navidrome` (полный скан на старте, чистит пропавшие) —
|
||||
предпочтительный вариант, без пароля;
|
||||
2. **Плановый скан** — сам раз в час (`ND_SCANSCHEDULE=1h`);
|
||||
3. Rescan через API требует пароль `navi_admin` — **неизвестен, не выдумывать**
|
||||
(`curl …/rest/ping` → `code 40 Wrong username or password`).
|
||||
| # | Способ | Результат |
|
||||
|---|---|---|
|
||||
| 1 | `docker restart navidrome` | ❌ лог `fullScan=false` → теги не перечитаны, всё те же **14** |
|
||||
| 2 | `docker compose down` + `up -d` (пересоздание контейнера) | ❌ лог `fullScan=false`, `duration=3.12s` → снова **14** |
|
||||
|
||||
⚠️ **Пересоздание контейнера БД не чистит** — `navidrome.db` в томе на диске, `down` его не удаляет.
|
||||
Compose не менялся (бэкап `docker-compose.yml.bak-20260927-052857`), данные/музыка целы.
|
||||
⚠️ Сироты: `updated_at` 10:09–10:23 UTC, `missing=0` — скан их живыми считает.
|
||||
|
||||
**🔑 СЛЕДУЮЩИЙ ШАГ (не сделан): `touch` 306 файлов → полный скан.** `touch` меняет только `mtime`,
|
||||
содержимое/аудио не трогает; Navidrome увидит «изменённые» файлы и перечитает теги. Альтернатива —
|
||||
UI-скан с галкой **Full scan** (пароль `navi_admin` неизвестен — **не выдумывать**,
|
||||
`curl …/rest/ping` → `code 40 Wrong username or password`).
|
||||
|
||||
Проверка результата — тот же запрос: `LIKE '(%'` должно стать **0**.
|
||||
|
||||
🔴 **ПИТФОЛЛ: `docker restart` и `docker compose down/up` для Navidrome НЕ дают полного скана** —
|
||||
в логе всегда `fullScan=false`. Смена тегов без смены `mtime` не подхватывается.
|
||||
|
||||
🔴 **Питфолл-нюанс:** Navidrome при скане **пересчитывает album из тегов**, поэтому у 306 файлов
|
||||
кроме `TALB` сменился и `TPE2` — в БД это **новые** записи альбомов, а не апдейт старых.
|
||||
Пока старые не вычищены, в UI видны оба варианта (со скобками и без).
|
||||
|
||||
Reference in new issue
Block a user