feat: Add review events persistence, version display, and auto-versioning system
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user