#!/bin/bash # Запуск API Gateway для мобильного приложения Women Safety echo -e "\033[1;34m🚀 Запуск API Gateway для мобильного приложения на порту 8000...\033[0m" # Переход в директорию проекта cd "$(dirname "$0")" || { echo "Не удалось перейти в директорию проекта"; exit 1; } # Активация виртуального окружения echo -e "\033[1;33m🔄 Активация виртуального окружения...\033[0m" source venv/bin/activate # Установка переменной PYTHONPATH export PYTHONPATH="${PWD}:${PYTHONPATH}" # Проверка внешнего IP для доступа из эмулятора Android EXTERNAL_IP=$(hostname -I | awk '{print $1}') echo -e "\033[1;33m📱 IP-адрес для доступа из эмулятора Android: ${EXTERNAL_IP}:8000\033[0m" # Создание Python-скрипта для миграции базы данных echo -e "\033[1;33m🔄 Создание временного скрипта для миграции базы данных...\033[0m" cat > migrate_db.py << 'EOL' import asyncio import sys async def run_migrations(): from shared.database import init_db print("🔄 Выполнение миграций базы данных...") await init_db() print("✅ Миграции успешно выполнены!") if __name__ == "__main__": asyncio.run(run_migrations()) EOL # Запуск миграции базы данных echo -e "\033[1;33m🔄 Запуск миграции базы данных...\033[0m" python migrate_db.py MIGRATION_STATUS=$? if [ $MIGRATION_STATUS -ne 0 ]; then echo -e "\033[1;31m❌ Ошибка при миграции базы данных. Проверьте логи.\033[0m" exit 1 fi echo -e "\033[1;32m✅ База данных успешно мигрирована.\033[0m" # Запуск API Gateway echo -e "\033[1;32m✅ Запуск API Gateway для мобильного приложения...\033[0m" cd services/api_gateway || { echo "Не удалось перейти в директорию API Gateway"; exit 1; } python -m uvicorn main:app --host 0.0.0.0 --port 8000 --log-level debug