diff --git a/docs/ASSETS_RESTORATION.md b/docs/ASSETS_RESTORATION.md index c1862665..e0e19391 100644 --- a/docs/ASSETS_RESTORATION.md +++ b/docs/ASSETS_RESTORATION.md @@ -9,12 +9,23 @@ - ✅ URLs в БД оновлено на формат MinIO (`https://assets.daarion.space/daarion-assets/microdao/logo/{slug}.png`) - ❌ Файли відсутні в MinIO (потрібно завантажити) - ✅ Система готова до завантаження нових файлів через UI +- ✅ Автоматичне відновлення URLs після відновлення БД ## Що зроблено 1. Оновлено `logo_url` для всіх MicroDAO на правильний формат MinIO URLs 2. Очищено `banner_url` (встановлено NULL) для старих форматів 3. Створено скрипт `scripts/restore-assets-to-minio.py` для майбутнього використання +4. Створено скрипт `scripts/fix-asset-urls.sh` для автоматичного виправлення URLs +5. Інтегровано виправлення URLs в `scripts/monitor-db-stability.sh` + +## Автоматичне відновлення URLs + +При відновленні БД з бекапу, скрипт `monitor-db-stability.sh` автоматично: +1. Відновлює БД з бекапу +2. Застосовує міграції +3. Синхронізує агентів +4. **Виправляє URLs логотипів та банерів** (викликає `fix-asset-urls.sh`) ## Як відновити логотипи та банери @@ -25,7 +36,16 @@ 3. Вибрати файл зображення 4. Файл автоматично завантажиться в MinIO та URL оновиться в БД -### Варіант 2: Завантажити через API +### Варіант 2: Виправити URLs вручну + +```bash +cd /opt/microdao-daarion +bash scripts/fix-asset-urls.sh +``` + +Це оновить всі старі URLs на правильний формат MinIO. + +### Варіант 3: Завантажити через API ```bash # Завантажити логотип @@ -41,7 +61,7 @@ curl -X PATCH https://daarion.space/api/microdao/{slug}/branding \ -d '{"logo_url": "https://assets.daarion.space/daarion-assets/microdao/logo/..."}' ``` -### Варіант 3: Завантажити напряму в MinIO +### Варіант 4: Завантажити напряму в MinIO ```bash # Використовуючи MinIO CLI @@ -90,9 +110,22 @@ ORDER BY slug; docker exec daarion-minio mc ls -r minio/daarion-assets/microdao/ ``` +## Після відновлення БД + +Якщо БД була відновлена з бекапу і URLs знову стали старими: + +```bash +# Автоматично (через monitor-db-stability.sh) +# Скрипт автоматично виправить URLs при відновленні + +# Або вручну +cd /opt/microdao-daarion +bash scripts/fix-asset-urls.sh +``` + ## Примітки - Старі файли логотипів (`/assets/logos/*.png`) втрачені під час міграції - Нові файли потрібно завантажити вручну через UI або API - URLs в БД вже налаштовані на правильний формат, тому після завантаження файлів вони автоматично відображатимуться - +- При відновленні БД з бекапу, URLs автоматично виправляються скриптом `monitor-db-stability.sh` diff --git a/scripts/monitor-db-stability.sh b/scripts/monitor-db-stability.sh index 711b3a3b..f1d7e17e 100755 --- a/scripts/monitor-db-stability.sh +++ b/scripts/monitor-db-stability.sh @@ -66,19 +66,9 @@ if [ "$MICRODAO_COUNT" -lt 5 ] || [ "$AGENT_COUNT" -lt 10 ]; then # Remove test agents bash scripts/remove-test-agents.sh 2>&1 | tail -3 || true - # Restore asset URLs (logos and banners) - log "🖼️ Restoring asset URLs..." - docker exec daarion-postgres psql -U postgres -d daarion -c " - UPDATE microdaos - SET logo_url = 'https://assets.daarion.space/daarion-assets/microdao/logo/' || slug || '.png' - WHERE logo_url IS NOT NULL - AND (logo_url LIKE '/assets/%' OR logo_url NOT LIKE 'https://%'); - - UPDATE microdaos - SET banner_url = NULL - WHERE banner_url IS NOT NULL - AND (banner_url LIKE '/api/static/%' OR banner_url NOT LIKE 'https://%'); - " 2>&1 | grep -v "UPDATE\|^$" || true + # Fix asset URLs (logos and banners) + log "🖼️ Fixing asset URLs..." + bash scripts/fix-asset-urls.sh 2>&1 | tail -5 || true log "✅ Recovery complete" else