docs: Add database persistence summary
This commit is contained in:
70
docs/DB_PERSISTENCE_SUMMARY.md
Normal file
70
docs/DB_PERSISTENCE_SUMMARY.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# Підсумок виправлення періодичної втрати даних PostgreSQL
|
||||
|
||||
## ✅ Виконано
|
||||
|
||||
### 1. Виявлено причини проблеми
|
||||
- Міграції не застосовуються автоматично при перезапуску (тільки при першому створенні БД)
|
||||
- Конфлікт між старим `dagi-postgres` та новим `daarion-postgres` контейнерами
|
||||
- Відсутність автоматичної перевірки цілісності БД
|
||||
|
||||
### 2. Створено скрипти для автоматизації
|
||||
- **`scripts/apply-migrations.sh`**: Застосовує всі міграції автоматично
|
||||
- **`scripts/ensure-db-persistence.sh`**: Перевіряє цілісність БД та додає відсутні колонки
|
||||
- **`scripts/db-health-check.sh`**: Періодична перевірка здоров'я БД (кожні 30 хвилин через cron)
|
||||
|
||||
### 3. Видалено конфліктуючі контейнери
|
||||
- Видалено старий `dagi-postgres` контейнер
|
||||
|
||||
### 4. Налаштовано автоматичний моніторинг
|
||||
- Додано cron job для автоматичної перевірки кожні 30 хвилин
|
||||
- Логи зберігаються в `/var/log/db-health-check.log`
|
||||
|
||||
### 5. Оновлено конфігурацію
|
||||
- Додано монтування скриптів в `docker-compose.db.yml`
|
||||
- Створено документацію `docs/DB_PERSISTENCE_FIX.md`
|
||||
|
||||
## 📊 Поточний стан
|
||||
|
||||
- **MicroDAOs**: 9 (всі з логотипами, 1 з банером)
|
||||
- **Volume size**: 74M
|
||||
- **Health check**: Працює автоматично кожні 30 хвилин
|
||||
- **Backups**: Автоматичні кожні 12 годин
|
||||
|
||||
## 🔍 Як перевірити
|
||||
|
||||
### Перевірити стан БД
|
||||
```bash
|
||||
cd /opt/microdao-daarion
|
||||
bash scripts/db-health-check.sh
|
||||
```
|
||||
|
||||
### Перевірити дані
|
||||
```bash
|
||||
docker exec daarion-postgres psql -U postgres -d daarion -c "SELECT COUNT(*) FROM microdaos;"
|
||||
docker exec daarion-postgres psql -U postgres -d daarion -c "SELECT slug, logo_url IS NOT NULL as has_logo, banner_url IS NOT NULL as has_banner FROM microdaos;"
|
||||
```
|
||||
|
||||
### Перевірити логи health check
|
||||
```bash
|
||||
tail -f /var/log/db-health-check.log
|
||||
```
|
||||
|
||||
### Перевірити cron
|
||||
```bash
|
||||
crontab -l | grep db-health-check
|
||||
```
|
||||
|
||||
## 🚨 Що робити при втраті даних
|
||||
|
||||
1. Перевірити бекапи: `ls -lh /opt/microdao-daarion/db_backups/`
|
||||
2. Відновити з бекапу (див. `docs/DB_PERSISTENCE_FIX.md`)
|
||||
3. Застосувати міграції: `bash scripts/apply-migrations.sh`
|
||||
4. Перевірити цілісність: `bash scripts/db-health-check.sh`
|
||||
|
||||
## 📝 Наступні кроки (рекомендації)
|
||||
|
||||
1. Розглянути використання PostgreSQL replication для високої доступності
|
||||
2. Додати алерти при виявленні проблем (наприклад, через email або Telegram)
|
||||
3. Налаштувати моніторинг розміру volume та попереджати при нестачі місця
|
||||
4. Розглянути використання managed PostgreSQL (наприклад, AWS RDS) для production
|
||||
|
||||
Reference in New Issue
Block a user