feat: Add review events persistence, version display, and auto-versioning system

This commit is contained in:
Primakov Alexandr Alexandrovich
2025-10-13 14:18:37 +03:00
parent cfba28f913
commit 2db1225618
56 changed files with 750 additions and 436 deletions
+150
View File
@@ -0,0 +1,150 @@
# 🚀 Быстрое обновление на Ubuntu
## Важно! ⚠️
Скрипт `redeploy-ubuntu.sh` **требует bash**, не используйте `sh`.
## ✅ Правильный способ запуска:
```bash
# Вариант 1: Через bash явно
cd ~/code-review-agent # или /opt/ai-review
sudo bash redeploy-ubuntu.sh
# Вариант 2: Сделать исполняемым
chmod +x redeploy-ubuntu.sh
sudo ./redeploy-ubuntu.sh
```
## ❌ Неправильно:
```bash
sudo sh redeploy-ubuntu.sh # НЕ ИСПОЛЬЗУЙТЕ sh!
```
## 🔧 Что исправлено:
1. ✅ Проверка наличия bash
2. ✅ Работа из любой директории проекта (не обязательно /opt/ai-review)
3. ✅ Backup создается в локальной директории `./backups/`
4. ✅ Работает без systemd сервиса (для dev окружения)
5. ✅ Не требует интерактивного подтверждения для non-git репозиториев
6. ✅ Более надежная обработка ошибок
## 📋 Workflow обновления:
### 1. Подготовка (на локальной машине):
```bash
# Внести изменения в код
git add .
git commit -m "Update feature"
git push
```
### 2. На сервере:
```bash
# Зайти на сервер
ssh user@your-server
# Перейти в директорию проекта
cd ~/code-review-agent # или где у вас установлен проект
# Обновить код (если git)
git pull
# ИЛИ скопировать новые файлы вручную:
# scp -r ./backend user@server:~/code-review-agent/
# scp -r ./frontend user@server:~/code-review-agent/
# Запустить redeploy
sudo bash redeploy-ubuntu.sh
```
### 3. Проверка:
```bash
# Проверить статус
systemctl status ai-review
# Или если без systemd:
ps aux | grep uvicorn
# Проверить логи
journalctl -u ai-review -f
# Или:
tail -f nohup.out
```
## 🐛 Troubleshooting:
### Ошибка: "This script requires bash"
```bash
# Используйте bash явно
sudo bash redeploy-ubuntu.sh
```
### Ошибка: Permission denied при создании backup
Это нормально - скрипт создаст backup в локальной директории `./backups/`
### Ошибка: Service не найден
Это нормально если вы не устанавливали systemd сервис. Скрипт все равно соберет проект.
### Frontend не собрался
```bash
cd frontend
rm -rf node_modules
npm install
npm run build
```
### Backend зависимости не установились
```bash
cd backend
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
```
## 📊 Что делает скрипт:
1. **Останавливает сервис** (если установлен в systemd)
2. **Создает backup БД** в `./backups/backup-YYYYMMDD-HHMMSS/`
3. **Обновляет код** через git pull (если это git репозиторий)
4. **Обновляет зависимости backend** (Python пакеты)
5. **Применяет миграции БД** (создает новые таблицы)
6. **Собирает frontend** (React → static files)
7. **Запускает сервис** (если установлен в systemd)
## 🎯 Быстрые команды:
```bash
# Полное обновление
cd ~/code-review-agent && git pull && sudo bash redeploy-ubuntu.sh
# Только пересборка (без git pull)
cd ~/code-review-agent && sudo bash redeploy-ubuntu.sh
# Откат к предыдущей версии
cd ~/code-review-agent
sudo systemctl stop ai-review
sudo cp backups/backup-YYYYMMDD-HHMMSS/review.db backend/
git reset --hard HEAD~1
sudo bash redeploy-ubuntu.sh
```
## ✅ Готово!
Скрипт теперь работает:
-С bash (не sh)
- ✅ Из любой директории проекта
- ✅ Без интерактивных вопросов
- ✅ С локальными backups
- ✅ С или без systemd