# -*- coding: utf-8 -*- """ Script d'initialisation de la base de données SQLite Lance ce script avant le premier démarrage de l'API Usage: python init_db.py """ import asyncio import sys from pathlib import Path # Ajouter le répertoire parent au path pour les imports sys.path.insert(0, str(Path(__file__).parent)) from database import init_db # ✅ Import depuis database/__init__.py import logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) async def main(): """Crée toutes les tables dans sage_dataven.db""" print("\n" + "=" * 60) print("🚀 Initialisation de la base de données Sage Dataven") print("=" * 60 + "\n") try: # Créer les tables await init_db() print("\n✅ Base de données créée avec succès!") print(f"📍 Fichier: sage_dataven.db") print("\n📊 Tables créées:") print(" ├─ email_logs (Journalisation emails)") print(" ├─ signature_logs (Suivi signatures Universign)") print(" ├─ workflow_logs (Transformations documents)") print(" ├─ cache_metadata (Métadonnées cache)") print(" └─ audit_logs (Journal d'audit)") print("\n📝 Prochaines étapes:") print(" 1. Configurer le fichier .env avec vos credentials") print(" 2. Lancer la gateway Windows sur la machine Sage") print(" 3. Lancer l'API VPS: uvicorn api:app --host 0.0.0.0 --port 8000") print(" 4. Ou avec Docker: docker-compose up -d") print(" 5. Tester: http://votre-vps:8000/docs") print("\n" + "=" * 60 + "\n") return True except Exception as e: print(f"\n❌ Erreur lors de l'initialisation: {e}") logger.exception("Détails de l'erreur:") return False if __name__ == "__main__": result = asyncio.run(main()) sys.exit(0 if result else 1)