Ctrl K
ComunidadGuías…

server/start_server.bat

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

echo ========================================
echo Auto Start Server Service
echo ========================================

:: Check if running in correct directory
if not exist "pyproject.toml" (
    echo Error: Please run this script in the server directory
    pause
    exit /b 1
)

:: Check if uv is installed
echo [1/5] Checking if uv is installed...
uv --version >nul 2>&1
if %errorlevel% neq 0 (
    echo uv is not installed, attempting to install...
    echo Downloading and installing uv...

    :: Try to install uv using PowerShell
    powershell -Command "irm https://astral.sh/uv/install.ps1 | iex" 2>nul
    if %errorlevel% neq 0 (
        echo Auto installation failed, please install uv manually:
        echo 1. Visit https://docs.astral.sh/uv/getting-started/installation/
        echo 2. Or run: curl -LsSf https://astral.sh/uv/install.sh | sh
        pause
        exit /b 1
    )

    :: Refresh environment variables
    call refreshenv 2>nul
    if %errorlevel% neq 0 (
        echo Please reopen command prompt or manually refresh environment variables
        echo Then run this script again
        pause
        exit /b 1
    )

    echo uv installation completed
) else (
    echo uv is already installed
)

:: Install project dependencies
echo [2/5] Installing project dependencies...
uv sync
if %errorlevel% neq 0 (
    echo Dependency installation failed
    pause
    exit /b 1
)
echo Dependencies installed successfully

:: Execute babel internationalization
echo [3/5] Executing babel internationalization...
uv run pybabel extract -F babel.cfg -o messages.pot .
if %errorlevel% neq 0 (
    echo babel extract failed
    pause
    exit /b 1
)

:: Check if Chinese translation files exist
if not exist "lang\zh_CN\LC_MESSAGES\messages.po" (
    echo Initializing Chinese translation files...
    uv run pybabel init -i messages.pot -d lang -l zh_CN
    if %errorlevel% neq 0 (
        echo babel init failed
        pause
        exit /b 1
    )
) else (
    echo Updating Chinese translation files...
    uv run pybabel update -i messages.pot -d lang -l zh_CN
    if %errorlevel% neq 0 (
        echo babel update failed
        pause
        exit /b 1
    )
)

:: Compile translation files
uv run pybabel compile -d lang -l zh_CN
if %errorlevel% neq 0 (
    echo babel compile failed
    pause
    exit /b 1
)
echo babel processing completed

:: Execute alembic database migration
echo [4/5] Executing alembic database migration...
uv run alembic upgrade head
if %errorlevel% neq 0 (
    echo alembic migration failed
    echo Please check database connection configuration
    pause
    exit /b 1
)
echo alembic migration completed

:: Start service
echo [5/5] Starting FastAPI service...
echo Service will start at http://localhost:3001
echo Press Ctrl+C to stop the service
echo ========================================

uv run uvicorn main:api --reload --port 3001 --host 0.0.0.0

pause