#!/usr/bin/env python # -*- coding: utf-8 -*- import sqlite3 import os # Prüfen, ob die Datenbank existiert db_path = 'systades.db' if not os.path.exists(db_path): print(f"Datenbank {db_path} existiert nicht.") exit(1) # Verbindung zur Datenbank herstellen conn = sqlite3.connect(db_path) cursor = conn.cursor() # Prüfen, ob die User-Tabelle existiert cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='user';") if not cursor.fetchone(): print("Die Tabelle 'user' existiert nicht. Erstelle neue Tabelle...") cursor.execute(''' CREATE TABLE user ( id INTEGER PRIMARY KEY AUTOINCREMENT, username VARCHAR(80) NOT NULL UNIQUE, email VARCHAR(120) NOT NULL UNIQUE, password VARCHAR(512) NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, is_active BOOLEAN DEFAULT 1, role VARCHAR(20) DEFAULT 'user' ) ''') conn.commit() print("Die Tabelle 'user' wurde erfolgreich erstellt.") else: # Überprüfen, ob die Spalte 'password' existiert cursor.execute("PRAGMA table_info(user);") columns = cursor.fetchall() column_names = [column[1] for column in columns] if 'password' not in column_names: print("Die Spalte 'password' fehlt in der Tabelle 'user'. Füge Spalte hinzu...") cursor.execute("ALTER TABLE user ADD COLUMN password VARCHAR(512);") conn.commit() print("Die Spalte 'password' wurde erfolgreich hinzugefügt.") else: print("Die Spalte 'password' existiert bereits in der Tabelle 'user'.") # Überprüfen der aktualisierten Spaltenstruktur print("\nAktualisierte Tabellenspalten der 'user'-Tabelle:") cursor.execute("PRAGMA table_info(user);") updated_columns = cursor.fetchall() for column in updated_columns: print(f"Column: {column[1]}, Type: {column[2]}, NOT NULL: {column[3]}, Default: {column[4]}, Primary Key: {column[5]}") # Datenbanktabellen anzeigen print("\nAlle Tabellen in der Datenbank:") cursor.execute("SELECT name FROM sqlite_master WHERE type='table';") tables = cursor.fetchall() for table in tables: print(f"- {table[0]}") # Schemaüberprüfung der user-Tabelle print("\nSchema der 'user'-Tabelle:") cursor.execute("SELECT sql FROM sqlite_master WHERE type='table' AND name='user';") schema = cursor.fetchone() if schema: print(schema[0]) conn.close() print("\nDatenbankaktualisierung abgeschlossen.")