diff --git a/diagnose-and-fix.sh b/diagnose-and-fix.sh new file mode 100644 index 0000000..c42055c --- /dev/null +++ b/diagnose-and-fix.sh @@ -0,0 +1,103 @@ +#!/bin/bash + +echo "==========================================" +echo "AI Review - Диагностика и исправление" +echo "==========================================" +echo "" + +INSTALL_DIR="$HOME/code-review-agent" + +echo "1. Проверка файлов:" +echo " - Backend: $([ -d $INSTALL_DIR/backend ] && echo '✓' || echo '✗')" +echo " - Frontend: $([ -d $INSTALL_DIR/frontend ] && echo '✓' || echo '✗')" +echo " - venv: $([ -d $INSTALL_DIR/backend/venv ] && echo '✓' || echo '✗ MISSING')" +echo " - venv/bin/python: $([ -f $INSTALL_DIR/backend/venv/bin/python ] && echo '✓' || echo '✗ MISSING')" +echo " - venv/bin/python3: $([ -f $INSTALL_DIR/backend/venv/bin/python3 ] && echo '✓' || echo '✗ MISSING')" +echo " - public: $([ -d $INSTALL_DIR/backend/public ] && echo '✓' || echo '✗ MISSING')" +echo " - DB: $([ -f $INSTALL_DIR/backend/review.db ] && echo '✓' || echo '⚠️ будет создана')" +echo "" + +# Проверить что именно в venv +if [ -d "$INSTALL_DIR/backend/venv" ]; then + echo "2. Содержимое venv/bin/:" + ls -la "$INSTALL_DIR/backend/venv/bin/" | head -20 + echo "" +fi + +echo "==========================================" +echo "Исправление" +echo "==========================================" +echo "" + +cd "$INSTALL_DIR/backend" + +# Удалить старый venv если есть +if [ -d "venv" ]; then + echo "Удаление старого venv..." + rm -rf venv +fi + +# Создать новый venv +echo "Создание нового venv..." +python3 -m venv venv + +# Проверить создание +if [ ! -f "venv/bin/python" ] && [ ! -f "venv/bin/python3" ]; then + echo "✗ ОШИБКА: venv не создан правильно!" + echo "" + echo "Попробуйте:" + echo " sudo apt-get install python3-venv" + echo " python3 -m venv venv" + exit 1 +fi + +echo "✓ venv создан" + +# Активировать и установить зависимости +echo "Установка зависимостей..." +source venv/bin/activate +pip install --upgrade pip > /dev/null +pip install -r requirements.txt + +echo "✓ Зависимости установлены" + +# Применить миграции +if [ -f "migrate.py" ]; then + echo "Применение миграций..." + python migrate.py + echo "✓ Миграции применены" +fi + +echo "" +echo "==========================================" +echo "Проверка" +echo "==========================================" +echo "" + +echo "Попытка запуска (5 секунд)..." +timeout 5 python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 2>&1 | head -20 & +UVICORN_PID=$! + +sleep 6 + +if ps -p $UVICORN_PID > /dev/null 2>&1; then + echo "✓ Uvicorn запустился успешно" + kill $UVICORN_PID 2>/dev/null +else + echo "⚠️ Uvicorn остановился (это нормально для теста)" +fi + +echo "" +echo "==========================================" +echo "Готово!" +echo "==========================================" +echo "" +echo "Теперь перезапустите сервис:" +echo " sudo systemctl restart ai-review" +echo " sudo systemctl status ai-review" +echo "" +echo "Или запустите вручную для теста:" +echo " cd $INSTALL_DIR/backend" +echo " source venv/bin/activate" +echo " python -m uvicorn app.main:app --host 0.0.0.0 --port 8000" +