#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Test-Skript: Überprüfung der Datenbank-Migration """ import sqlite3 import sys import os def test_database_schema(): """Testet das Datenbank-Schema""" db_path = 'database/myp.db' if not os.path.exists(db_path): print(f'❌ Datenbank nicht gefunden: {db_path}') return False try: conn = sqlite3.connect(db_path) cursor = conn.cursor() # Prüfe Schema der users-Tabelle cursor.execute('PRAGMA table_info(users)') columns = cursor.fetchall() print("📋 Schema der users-Tabelle:") for col in columns: print(f" - {col[1]} ({col[2]})") # Prüfe ob last_activity vorhanden ist column_names = [col[1] for col in columns] if 'last_activity' in column_names: print("✅ Spalte 'last_activity' ist vorhanden") # Teste eine Abfrage cursor.execute('SELECT id, email, last_activity FROM users LIMIT 1') result = cursor.fetchone() if result: print(f"✅ Test-Abfrage erfolgreich: User ID {result[0]}, Email: {result[1]}, Last Activity: {result[2]}") else: print("⚠️ Keine Benutzer in der Datenbank gefunden") else: print("❌ Spalte 'last_activity' fehlt noch") return False conn.close() return True except Exception as e: print(f'❌ Fehler beim Testen: {e}') return False def test_sqlalchemy_model(): """Testet das SQLAlchemy-Model""" try: # Importiere das Model sys.path.append('.') from models import User, get_db_session print("\n🔧 Teste SQLAlchemy-Model...") # Erstelle Session session = get_db_session() # Teste Abfrage user = session.query(User).filter_by(email='admin@mercedes-benz.com').first() if user: print(f"✅ SQLAlchemy-Test erfolgreich:") print(f" - User ID: {user.id}") print(f" - Email: {user.email}") print(f" - Last Activity: {user.last_activity}") else: print("⚠️ Admin-User nicht gefunden") session.close() return True except Exception as e: print(f'❌ SQLAlchemy-Test fehlgeschlagen: {e}') return False if __name__ == '__main__': print("🔧 Starte Datenbank-Schema-Test...") # Test 1: Direkter SQLite-Test schema_ok = test_database_schema() # Test 2: SQLAlchemy-Model-Test if schema_ok: model_ok = test_sqlalchemy_model() if model_ok: print("\n✅ Alle Tests erfolgreich - Schema-Problem behoben!") else: print("\n❌ SQLAlchemy-Model-Test fehlgeschlagen") else: print("\n❌ Schema-Test fehlgeschlagen")