/
gr.ev.vl
/
ReviewFlow
Обзор
Документация
Войти
/
gr.ev.vl
/
ReviewFlow
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
scripts/bd.cmd
858 строк
27 KB
gr.ev.vl
jr
27 май 2026, 23:50
27 май 2026, 23:50
1c14da5
Код
Авторство
О чём код?
@echo off chcp 65001 >nul setlocal EnableDelayedExpansion :: ============================================================ :: ReviewFlow v4.1 — Database Setup Script :: Создаёт базу данных PostgreSQL и настраивает Redis :: ============================================================ title ReviewFlow Database Setup :: ============================================================ :: НАСТРОЙКИ :: ============================================================ set "DB_USER=reviewflow" set "DB_PASSWORD=reviewflow" set "DB_NAME=reviewflow" set "DB_PORT=5432" set "DB_HOST=localhost" set "POSTGRES_VERSION=18" set "POSTGRES_INSTALL_DIR=C:\Program Files\PostgreSQL\%POSTGRES_VERSION%" set "PGDATA=%POSTGRES_INSTALL_DIR%\data" :: ============================================================ :: ПРОВЕРКА ПРАВ АДМИНИСТРАТОРА :: ============================================================ net session >nul 2>&1 if %errorlevel% neq 0 ( echo [ПРЕДУПРЕЖДЕНИЕ] Для установки компонентов нужны права Администратора. echo Перезапустите скрипт от имени Администратора. echo. choice /C YN /M "Продолжить без прав Администратора (только настройка)?" if errorlevel 2 exit /b 1 set "NO_ADMIN=1" ) else ( set "NO_ADMIN=0" ) :: ============================================================ :: ГЛАВНОЕ МЕНЮ :: ============================================================ :main_menu cls echo ================================================================ echo ReviewFlow v4.1 — Настройка базы данных echo ================================================================ echo. echo Текущая конфигурация: echo Хост: %DB_HOST% echo Порт: %DB_PORT% echo БД: %DB_NAME% echo Польз.: %DB_USER% echo. echo ================================================================ echo ВЫБЕРИТЕ ДЕЙСТВИЕ: echo ================================================================ echo. echo УСТАНОВКА: echo 1. Установить PostgreSQL %POSTGRES_VERSION% echo 2. Установить Redis echo 3. Установить всё (PostgreSQL + Redis) echo. echo НАСТРОЙКА: echo 4. Создать базу данных и пользователя echo 5. Применить миграции Alembic echo 6. Проверить подключение echo 7. Создать резервную копию echo 8. Восстановить из резервной копии echo. echo ДОПОЛНИТЕЛЬНО: echo 9. Установить pgAdmin (GUI) echo 10. Настроить переменные окружения echo 11. Показать статус сервисов echo 12. Запустить/Остановить/Перезапустить сервисы echo 0. Выход echo. set /p choice="Ваш выбор: " if "%choice%"=="1" goto install_postgres if "%choice%"=="2" goto install_redis if "%choice%"=="3" goto install_all if "%choice%"=="4" goto create_database if "%choice%"=="5" goto apply_migrations if "%choice%"=="6" goto test_connection if "%choice%"=="7" goto backup if "%choice%"=="8" goto restore if "%choice%"=="9" goto install_pgadmin if "%choice%"=="10" goto setup_env if "%choice%"=="11" goto show_status if "%choice%"=="12" goto manage_services if "%choice%"=="0" goto end echo Неверный выбор. Попробуйте снова. timeout /t 2 >nul goto main_menu :: ============================================================ :: 1. УСТАНОВКА POSTGRESQL :: ============================================================ :install_postgres echo. echo ================================================================ echo УСТАНОВКА PostgreSQL %POSTGRES_VERSION% echo ================================================================ echo. :: Проверка существующей установки if exist "%POSTGRES_INSTALL_DIR%\bin\psql.exe" ( echo [OK] PostgreSQL уже установлен "%POSTGRES_INSTALL_DIR%\bin\psql.exe" --version echo. pause goto main_menu ) where psql >nul 2>&1 if %errorlevel% equ 0 ( echo [OK] PostgreSQL найден в системе psql --version for /f "delims=" %%i in ('where psql') do set "PSQL_PATH=%%i" for %%a in ("%PSQL_PATH%\..") do set "POSTGRES_INSTALL_DIR=%%~fa" echo Путь: %POSTGRES_INSTALL_DIR% echo. pause goto main_menu ) if "%NO_ADMIN%"=="1" ( echo [ОШИБКА] Для установки PostgreSQL нужны права Администратора. pause goto main_menu ) :: Загрузка установщика set "POSTGRES_URL=https://get.enterprisedb.com/postgresql/postgresql-%POSTGRES_VERSION%.0-1-windows-x64.exe" set "POSTGRES_INSTALLER=%TEMP%\postgresql-%POSTGRES_VERSION%-installer.exe" echo Загрузка установщика PostgreSQL %POSTGRES_VERSION%... powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri '%POSTGRES_URL%' -OutFile '%POSTGRES_INSTALLER%'}" if not exist "%POSTGRES_INSTALLER%" ( echo [ОШИБКА] Не удалось загрузить установщик. echo Попробуйте скачать вручную: echo https://www.enterprisedb.com/downloads/postgres-postgresql-downloads pause goto main_menu ) echo. echo Запуск установщика... echo. echo ВАЖНО: При установке укажите: echo - Пароль суперпользователя: %DB_PASSWORD% echo - Порт: %DB_PORT% echo. start /wait "" "%POSTGRES_INSTALLER%" :: Проверка if exist "%POSTGRES_INSTALL_DIR%\bin\psql.exe" ( echo [OK] PostgreSQL установлен успешно setx PATH "%PATH%;%POSTGRES_INSTALL_DIR%\bin" >nul 2>&1 ) else ( echo [ПРЕДУПРЕЖДЕНИЕ] Проверьте установку: %POSTGRES_INSTALL_DIR% ) echo. pause goto main_menu :: ============================================================ :: 2. УСТАНОВКА REDIS :: ============================================================ :install_redis echo. echo ================================================================ echo УСТАНОВКА Redis echo ================================================================ echo. where redis-server >nul 2>&1 if %errorlevel% equ 0 ( echo [OK] Redis уже установлен redis-server --version echo. pause goto main_menu ) :: Проверка Docker where docker >nul 2>&1 if %errorlevel% equ 0 ( echo Docker обнаружен. choice /C YN /M "Установить Redis через Docker?" if errorlevel 2 goto redis_windows echo Запуск Redis в Docker... docker rm -f reviewflow-redis >nul 2>&1 docker run -d --name reviewflow-redis -p 6379:6379 --restart unless-stopped redis:7-alpine if %errorlevel% equ 0 ( echo [OK] Redis запущен в Docker на порту 6379 echo Проверка: docker exec reviewflow-redis redis-cli ping ) else ( echo [ОШИБКА] Не удалось запустить Redis ) echo. pause goto main_menu ) :redis_windows if "%NO_ADMIN%"=="1" ( echo [ОШИБКА] Для установки Redis нужны права Администратора. pause goto main_menu ) echo Выберите способ установки Redis для Windows: echo 1. Memurai (рекомендуется, бесплатно для разработки) echo 2. Chocolatey (choco install redis-64) echo 3. Скачать вручную echo 0. Назад echo. set /p redis_choice="Ваш выбор: " if "%redis_choice%"=="1" ( echo Открытие страницы Memurai... start https://www.memurai.com/get-memurai echo После установки Redis будет доступен на порту 6379 ) if "%redis_choice%"=="2" ( where choco >nul 2>&1 if %errorlevel% equ 0 ( choco install redis-64 -y echo [OK] Redis установлен через Chocolatey ) else ( echo [ОШИБКА] Chocolatey не установлен: https://chocolatey.org/ ) ) if "%redis_choice%"=="3" ( start https://github.com/microsoftarchive/redis/releases ) echo. pause goto main_menu :: ============================================================ :: 3. УСТАНОВИТЬ ВСЁ :: ============================================================ :install_all echo. echo ================================================================ echo ПОЛНАЯ УСТАНОВКА echo ================================================================ echo. echo [1/3] Установка PostgreSQL... call :install_postgres_silent echo [2/3] Установка Redis... call :install_redis_silent echo [3/3] Создание базы данных... call :create_database_silent echo. echo [OK] Все компоненты установлены echo. pause goto main_menu :install_postgres_silent if exist "%POSTGRES_INSTALL_DIR%\bin\psql.exe" ( echo [OK] PostgreSQL уже установлен ) else ( echo [ПРОПУСК] Требуется ручная установка ) exit /b :install_redis_silent where redis-server >nul 2>&1 if %errorlevel% equ 0 ( echo [OK] Redis уже установлен ) else ( echo [ПРОПУСК] Требуется ручная установка ) exit /b :: ============================================================ :: 4. СОЗДАНИЕ БАЗЫ ДАННЫХ :: ============================================================ :create_database echo. echo ================================================================ echo СОЗДАНИЕ БАЗЫ ДАННЫХ И ПОЛЬЗОВАТЕЛЯ echo ================================================================ call :create_database_silent echo. pause goto main_menu :create_database_silent :: Поиск psql set "PSQL=" if exist "%POSTGRES_INSTALL_DIR%\bin\psql.exe" ( set "PSQL=%POSTGRES_INSTALL_DIR%\bin\psql.exe" ) else ( where psql >nul 2>&1 if %errorlevel% equ 0 ( for /f "delims=" %%i in ('where psql') do set "PSQL=%%i" ) ) if "%PSQL%"=="" ( echo [ОШИБКА] psql не найден. Установите PostgreSQL. exit /b ) echo Используется: %PSQL% :: Запрос пароля суперпользователя set /p PG_PASSWORD="Пароль суперпользователя postgres (по умолчанию: postgres): " if "%PG_PASSWORD%"=="" set "PG_PASSWORD=postgres" echo. echo Создание пользователя %DB_USER%... echo CREATE USER %DB_USER% WITH PASSWORD '%DB_PASSWORD%'; | "%PSQL%" -U postgres -p %DB_PORT% >nul 2>&1 if %errorlevel% neq 0 ( echo [ИНФО] Пользователь уже существует или ошибка подключения ) echo Создание базы данных %DB_NAME%... echo CREATE DATABASE %DB_NAME% OWNER %DB_USER%; | "%PSQL%" -U postgres -p %DB_PORT% >nul 2>&1 if %errorlevel% neq 0 ( echo [ИНФО] База данных уже существует или ошибка подключения ) echo Настройка прав... echo GRANT ALL PRIVILEGES ON DATABASE %DB_NAME% TO %DB_USER%; | "%PSQL%" -U postgres -p %DB_PORT% >nul 2>&1 echo ALTER DATABASE %DB_NAME% OWNER TO %DB_USER%; | "%PSQL%" -U postgres -p %DB_PORT% >nul 2>&1 :: Проверка подключения echo. echo Проверка подключения... set "PGPASSWORD=%DB_PASSWORD%" echo SELECT 'PostgreSQL OK', version(), now(); | "%PSQL%" -U %DB_USER% -d %DB_NAME% -h %DB_HOST% -p %DB_PORT% 2>nul set "PGPASSWORD=" if %errorlevel% equ 0 ( echo. echo ================================================================ echo [OK] База данных создана и доступна echo ================================================================ echo. echo Параметры подключения: echo Хост: %DB_HOST% echo Порт: %DB_PORT% echo БД: %DB_NAME% echo Польз.: %DB_USER% echo Пароль: %DB_PASSWORD% ) else ( echo. echo [ОШИБКА] Не удалось подключиться к базе данных. echo Проверьте: echo 1. Запущен ли PostgreSQL (services.msc) echo 2. Правильный ли пароль суперпользователя echo 3. Не занят ли порт %DB_PORT% ) exit /b :: ============================================================ :: 5. ПРИМЕНЕНИЕ МИГРАЦИЙ :: ============================================================ :apply_migrations echo. echo ================================================================ echo ПРИМЕНЕНИЕ МИГРАЦИЙ ALEMBIC echo ================================================================ echo. where uv >nul 2>&1 if %errorlevel% neq 0 ( echo [ОШИБКА] uv не найден. Установите uv. pause goto main_menu ) :: Поиск корня проекта (там где pyproject.toml) set "PROJECT_DIR=" if exist "pyproject.toml" ( set "PROJECT_DIR=%CD%" ) else if exist "..\pyproject.toml" ( set "PROJECT_DIR=%CD%\.." ) else ( echo [ОШИБКА] pyproject.toml не найден. echo Перейдите в корневую папку проекта. pause goto main_menu ) cd /d "%PROJECT_DIR%" :: Проверка alembic uv run python -c "import alembic" 2>nul if %errorlevel% neq 0 ( echo Установка Alembic... uv add alembic ) :: Инициализация alembic если нет if not exist "alembic.ini" ( echo Инициализация Alembic... uv run alembic init alembic :: Обновление конфигурации powershell -Command "(Get-Content 'alembic.ini') -replace 'sqlalchemy.url = .*', 'sqlalchemy.url = postgresql://%DB_USER%:%DB_PASSWORD%@%DB_HOST%:%DB_PORT%/%DB_NAME%' | Set-Content 'alembic.ini'" echo [OK] Alembic инициализирован ) :: Применение миграций echo Применение миграций... uv run alembic upgrade head if %errorlevel% equ 0 ( echo [OK] Миграции применены успешно ) else ( echo [ОШИБКА] Не удалось применить миграции ) echo. pause goto main_menu :: ============================================================ :: 6. ПРОВЕРКА ПОДКЛЮЧЕНИЯ :: ============================================================ :test_connection echo. echo ================================================================ echo ПРОВЕРКА ПОДКЛЮЧЕНИЯ echo ================================================================ echo. echo 1. Проверка PostgreSQL... set "PSQL=" if exist "%POSTGRES_INSTALL_DIR%\bin\psql.exe" ( set "PSQL=%POSTGRES_INSTALL_DIR%\bin\psql.exe" ) else ( where psql >nul 2>&1 if %errorlevel% equ 0 ( for /f "delims=" %%i in ('where psql') do set "PSQL=%%i" ) ) if not "%PSQL%"=="" ( set "PGPASSWORD=%DB_PASSWORD%" echo SELECT 'PostgreSQL OK', version(); | "%PSQL%" -U %DB_USER% -d %DB_NAME% -h %DB_HOST% -p %DB_PORT% 2>nul if %errorlevel% equ 0 ( echo [OK] PostgreSQL доступен ) else ( echo [ОШИБКА] PostgreSQL недоступен ) set "PGPASSWORD=" ) else ( echo [ПРОПУСК] psql не найден ) echo. echo 2. Проверка Redis... where redis-cli >nul 2>&1 if %errorlevel% equ 0 ( echo PING | redis-cli 2>nul | findstr "PONG" >nul if %errorlevel% equ 0 ( echo [OK] Redis доступен ) else ( echo [ОШИБКА] Redis недоступен ) ) else ( :: Проверка через Python python -c "import redis; r=redis.Redis(host='%DB_HOST%',port=6379); print('Redis OK' if r.ping() else 'Redis FAIL')" 2>nul if %errorlevel% equ 0 ( echo [OK] Redis доступен (через Python) ) else ( echo [ОШИБКА] Redis недоступен ) ) echo. echo 3. Проверка Python-подключения (SQLAlchemy)... python -c " import asyncio from sqlalchemy.ext.asyncio import create_async_engine from sqlalchemy import text async def test(): engine = create_async_engine('postgresql+asyncpg://%DB_USER%:%DB_PASSWORD%@%DB_HOST%:%DB_PORT%/%DB_NAME%') async with engine.connect() as conn: result = await conn.execute(text('SELECT 1')) print('SQLAlchemy OK:', result.scalar()) asyncio.run(test()) " 2>nul if %errorlevel% equ 0 ( echo [OK] Python-подключение работает ) else ( echo [ОШИБКА] Python-подключение не работает echo Проверьте: uv add sqlalchemy asyncpg ) echo. pause goto main_menu :: ============================================================ :: 7. РЕЗЕРВНОЕ КОПИРОВАНИЕ :: ============================================================ :backup echo. echo ================================================================ echo СОЗДАНИЕ РЕЗЕРВНОЙ КОПИИ echo ================================================================ echo. set "PGDUMP=" if exist "%POSTGRES_INSTALL_DIR%\bin\pg_dump.exe" ( set "PGDUMP=%POSTGRES_INSTALL_DIR%\bin\pg_dump.exe" ) else ( where pg_dump >nul 2>&1 if %errorlevel% equ 0 ( for /f "delims=" %%i in ('where pg_dump') do set "PGDUMP=%%i" ) ) if "%PGDUMP%"=="" ( echo [ОШИБКА] pg_dump не найден pause goto main_menu ) :: Папка для бэкапов set "BACKUP_DIR=backups" if not exist "%BACKUP_DIR%" mkdir "%BACKUP_DIR%" set "TIMESTAMP=%date:~-4%%date:~-10,2%%date:~-7,2%_%time:~0,2%%time:~3,2%%time:~6,2%" set "TIMESTAMP=%TIMESTAMP: =0%" set "BACKUP_FILE=%BACKUP_DIR%\reviewflow_%TIMESTAMP%.sql" echo Создание резервной копии... echo Файл: %BACKUP_FILE% set "PGPASSWORD=%DB_PASSWORD%" "%PGDUMP%" -U %DB_USER% -h %DB_HOST% -p %DB_PORT% -d %DB_NAME% -f "%BACKUP_FILE%" --no-owner --no-acl set "PGPASSWORD=" if %errorlevel% equ 0 ( for %%f in ("%BACKUP_FILE%") do ( set /a "SIZE_KB=%%~zf / 1024" echo [OK] Резервная копия создана (!SIZE_KB! KB) ) ) else ( echo [ОШИБКА] Не удалось создать резервную копию ) echo. pause goto main_menu :: ============================================================ :: 8. ВОССТАНОВЛЕНИЕ :: ============================================================ :restore echo. echo ================================================================ echo ВОССТАНОВЛЕНИЕ ИЗ РЕЗЕРВНОЙ КОПИИ echo ================================================================ echo. if not exist "backups" ( echo [ОШИБКА] Папка backups не найдена pause goto main_menu ) echo Доступные резервные копии: dir /b "backups\*.sql" 2>nul if %errorlevel% neq 0 ( echo [ОШИБКА] Файлы .sql не найдены pause goto main_menu ) echo. set /p BACKUP_FILE="Введите имя файла для восстановления: " set "BACKUP_FILE=backups\%BACKUP_FILE%" if not exist "%BACKUP_FILE%" ( echo [ОШИБКА] Файл не найден: %BACKUP_FILE% pause goto main_menu ) echo. echo ВНИМАНИЕ: Текущие данные будут заменены! choice /C YN /M "Продолжить?" if errorlevel 2 goto main_menu set "PSQL=" if exist "%POSTGRES_INSTALL_DIR%\bin\psql.exe" ( set "PSQL=%POSTGRES_INSTALL_DIR%\bin\psql.exe" ) else ( for /f "delims=" %%i in ('where psql') do set "PSQL=%%i" ) echo Восстановление из %BACKUP_FILE%... set "PGPASSWORD=%DB_PASSWORD%" "%PSQL%" -U %DB_USER% -h %DB_HOST% -p %DB_PORT% -d %DB_NAME% -f "%BACKUP_FILE%" 2>&1 set "PGPASSWORD=" if %errorlevel% equ 0 ( echo [OK] Восстановление завершено ) else ( echo [ОШИБКА] Ошибка восстановления ) echo. pause goto main_menu :: ============================================================ :: 9. УСТАНОВКА PGADMIN :: ============================================================ :install_pgadmin echo. echo ================================================================ echo УСТАНОВКА pgAdmin echo ================================================================ echo. echo pgAdmin — графический интерфейс для управления PostgreSQL. echo. echo 1. Установщик Windows echo 2. Docker echo 3. Chocolatey echo 0. Назад echo. set /p pg_choice="Ваш выбор: " if "%pg_choice%"=="1" ( start https://www.pgadmin.org/download/pgadmin-4-windows/ ) if "%pg_choice%"=="2" ( where docker >nul 2>&1 if %errorlevel% equ 0 ( docker rm -f pgadmin >nul 2>&1 docker run -d --name pgadmin -p 5050:80 ^ -e PGADMIN_DEFAULT_EMAIL=admin@reviewflow.local ^ -e PGADMIN_DEFAULT_PASSWORD=admin ^ --restart unless-stopped ^ dpage/pgadmin4 echo [OK] pgAdmin запущен: http://localhost:5050 echo Логин: admin@reviewflow.local echo Пароль: admin ) else ( echo [ОШИБКА] Docker не установлен ) ) if "%pg_choice%"=="3" ( where choco >nul 2>&1 if %errorlevel% equ 0 ( choco install pgadmin4 -y ) else ( echo [ОШИБКА] Chocolatey не установлен ) ) echo. pause goto main_menu :: ============================================================ :: 10. ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ :: ============================================================ :setup_env echo. echo ================================================================ echo НАСТРОЙКА ПЕРЕМЕННЫХ ОКРУЖЕНИЯ echo ================================================================ echo. set "ENV_FILE=.env" if not exist "%ENV_FILE%" ( echo Создание .env файла... ) ( echo DATABASE_URL=postgresql+asyncpg://%DB_USER%:%DB_PASSWORD%@%DB_HOST%:%DB_PORT%/%DB_NAME% echo REDIS_URL=redis://%DB_HOST%:6379/0 echo CELERY_BROKER_URL=redis://%DB_HOST%:6379/1 echo CELERY_RESULT_BACKEND=redis://%DB_HOST%:6379/2 ) > "%ENV_FILE%" echo [OK] Файл .env обновлён echo. echo Содержимое: type "%ENV_FILE%" echo. echo Установка системных переменных окружения... setx DATABASE_URL "postgresql+asyncpg://%DB_USER%:%DB_PASSWORD%@%DB_HOST%:%DB_PORT%/%DB_NAME%" >nul 2>&1 setx REDIS_URL "redis://%DB_HOST%:6379/0" >nul 2>&1 echo [OK] Переменные установлены echo. pause goto main_menu :: ============================================================ :: 11. СТАТУС СЕРВИСОВ :: ============================================================ :show_status echo. echo ================================================================ echo СТАТУС СЕРВИСОВ echo ================================================================ echo. :: PostgreSQL echo PostgreSQL: sc query "postgresql-x64-%POSTGRES_VERSION%" 2>nul | findstr "STATE" >nul if %errorlevel% equ 0 ( sc query "postgresql-x64-%POSTGRES_VERSION%" 2>nul | findstr "STATE" ) else ( sc query postgresql 2>nul | findstr "STATE" >nul if %errorlevel% equ 0 ( sc query postgresql 2>nul | findstr "STATE" ) else ( echo [НЕ НАЙДЕН] Служба PostgreSQL не обнаружена ) ) netstat -an | findstr ":%DB_PORT% " >nul if %errorlevel% equ 0 ( echo [OK] Порт %DB_PORT% слушается ) else ( echo [НЕТ] Порт %DB_PORT% не слушается ) :: Redis echo. echo Redis: sc query redis 2>nul | findstr "STATE" >nul if %errorlevel% equ 0 ( sc query redis 2>nul | findstr "STATE" ) else ( sc query memurai 2>nul | findstr "STATE" >nul if %errorlevel% equ 0 ( sc query memurai 2>nul | findstr "STATE" ) else ( echo [НЕ НАЙДЕН] Служба Redis не обнаружена ) ) netstat -an | findstr ":6379 " >nul if %errorlevel% equ 0 ( echo [OK] Порт 6379 слушается ) else ( echo [НЕТ] Порт 6379 не слушается ) echo. pause goto main_menu :: ============================================================ :: 12. УПРАВЛЕНИЕ СЕРВИСАМИ :: ============================================================ :manage_services echo. echo ================================================================ echo УПРАВЛЕНИЕ СЕРВИСАМИ echo ================================================================ echo. echo 1. Запустить PostgreSQL echo 2. Остановить PostgreSQL echo 3. Перезапустить PostgreSQL echo 4. Запустить Redis echo 5. Остановить Redis echo 6. Перезапустить Redis echo 0. Назад echo. set /p svc_choice="Ваш выбор: " set "PG_SVC=postgresql-x64-%POSTGRES_VERSION%" sc query "%PG_SVC%" >nul 2>&1 if %errorlevel% neq 0 set "PG_SVC=postgresql" set "REDIS_SVC=redis" sc query "%REDIS_SVC%" >nul 2>&1 if %errorlevel% neq 0 set "REDIS_SVC=memurai" if "%svc_choice%"=="1" ( net start "%PG_SVC%" 2>nul || echo [ОШИБКА] Не удалось запустить ) if "%svc_choice%"=="2" ( net stop "%PG_SVC%" 2>nul || echo [ОШИБКА] Не удалось остановить ) if "%svc_choice%"=="3" ( net stop "%PG_SVC%" >nul 2>&1 timeout /t 3 >nul net start "%PG_SVC%" 2>nul || echo [ОШИБКА] Не удалось перезапустить ) if "%svc_choice%"=="4" ( net start "%REDIS_SVC%" 2>nul || ( echo Пробуем запустить Redis напрямую... start "" "redis-server" --service-run 2>nul ) ) if "%svc_choice%"=="5" ( net stop "%REDIS_SVC%" 2>nul || echo [ОШИБКА] Не удалось остановить ) if "%svc_choice%"=="6" ( net stop "%REDIS_SVC%" >nul 2>&1 timeout /t 2 >nul net start "%REDIS_SVC%" 2>nul || echo [ОШИБКА] Не удалось перезапустить ) if "%svc_choice%"=="0" goto main_menu echo. timeout /t 3 >nul goto manage_services :: ============================================================ :: ЗАВЕРШЕНИЕ :: ============================================================ :end echo. echo ================================================================ echo НАСТРОЙКА БАЗЫ ДАННЫХ ЗАВЕРШЕНА echo ================================================================ echo. echo Параметры подключения: echo PostgreSQL: %DB_HOST%:%DB_PORT%/%DB_NAME% echo Пользователь: %DB_USER% echo Redis: %DB_HOST%:6379 echo. echo Проверка: echo psql -U %DB_USER% -d %DB_NAME% -h %DB_HOST% -p %DB_PORT% echo redis-cli ping echo. endlocal pause exit /b 0