import os import sys from pathlib import Path import shutil # Pfade zu möglichen Datenbankdateien db_paths = [ Path("instance/mindmap.db"), Path("mindmap.db"), Path("website/instance/mindmap.db"), Path("website/mindmap.db") ] # Lösche bestehende Datenbankdateien for db_path in db_paths: if db_path.exists(): try: print(f"Lösche Datenbank: {db_path}") os.remove(db_path) except Exception as e: print(f"Fehler beim Löschen von {db_path}: {e}") # Stelle sicher, dass das instance-Verzeichnis existiert instance_dir = Path("instance") if not instance_dir.exists(): os.makedirs(instance_dir) # Importiere Datenbankmodelle und erstelle die Datenbank from app import db, create_app, User, MindMapNode, Thought, Comment app = create_app() with app.app_context(): print("Erstelle neue Datenbank...") db.drop_all() # Stelle sicher, dass alle Tabellen gelöscht sind db.create_all() # Erstelle Tabellen basierend auf den Modellen # Erstelle einen Admin-Benutzer admin = User(username="admin", email="admin@example.com", is_admin=True) admin.set_password("admin123") db.session.add(admin) # Erstelle Root-Node root = MindMapNode(name="Wissenschaft") db.session.add(root) # Hauptkategorien erstellen naturwissenschaften = MindMapNode(name="Naturwissenschaften", parent=root) geisteswissenschaften = MindMapNode(name="Geisteswissenschaften", parent=root) sozialwissenschaften = MindMapNode(name="Sozialwissenschaften", parent=root) ingenieurwissenschaften = MindMapNode(name="Ingenieurwissenschaften", parent=root) medizin = MindMapNode(name="Medizin", parent=root) informatik = MindMapNode(name="Informatik", parent=root) db.session.add_all([naturwissenschaften, geisteswissenschaften, sozialwissenschaften, ingenieurwissenschaften, medizin, informatik]) # Unterkategorien für Naturwissenschaften physik = MindMapNode(name="Physik", parent=naturwissenschaften) chemie = MindMapNode(name="Chemie", parent=naturwissenschaften) biologie = MindMapNode(name="Biologie", parent=naturwissenschaften) astronomie = MindMapNode(name="Astronomie", parent=naturwissenschaften) geologie = MindMapNode(name="Geologie", parent=naturwissenschaften) # Unterkategorien für Physik quantenphysik = MindMapNode(name="Quantenphysik", parent=physik) relativitätstheorie = MindMapNode(name="Relativitätstheorie", parent=physik) thermodynamik = MindMapNode(name="Thermodynamik", parent=physik) # Unterkategorien für Geisteswissenschaften philosophie = MindMapNode(name="Philosophie", parent=geisteswissenschaften) geschichte = MindMapNode(name="Geschichte", parent=geisteswissenschaften) linguistik = MindMapNode(name="Linguistik", parent=geisteswissenschaften) literaturwissenschaft = MindMapNode(name="Literaturwissenschaft", parent=geisteswissenschaften) religionswissenschaft = MindMapNode(name="Religionswissenschaft", parent=geisteswissenschaften) # Unterkategorien für Sozialwissenschaften soziologie = MindMapNode(name="Soziologie", parent=sozialwissenschaften) psychologie = MindMapNode(name="Psychologie", parent=sozialwissenschaften) politikwissenschaft = MindMapNode(name="Politikwissenschaft", parent=sozialwissenschaften) wirtschaftswissenschaften = MindMapNode(name="Wirtschaftswissenschaften", parent=sozialwissenschaften) # Unterkategorien für Ingenieurwissenschaften maschinenbau = MindMapNode(name="Maschinenbau", parent=ingenieurwissenschaften) elektrotechnik = MindMapNode(name="Elektrotechnik", parent=ingenieurwissenschaften) bauingenieurwesen = MindMapNode(name="Bauingenieurwesen", parent=ingenieurwissenschaften) verfahrenstechnik = MindMapNode(name="Verfahrenstechnik", parent=ingenieurwissenschaften) # Unterkategorien für Medizin humanmedizin = MindMapNode(name="Humanmedizin", parent=medizin) zahnmedizin = MindMapNode(name="Zahnmedizin", parent=medizin) pharmazie = MindMapNode(name="Pharmazie", parent=medizin) neurologie = MindMapNode(name="Neurologie", parent=medizin) onkologie = MindMapNode(name="Onkologie", parent=medizin) # Unterkategorien für Informatik künstliche_intelligenz = MindMapNode(name="Künstliche Intelligenz", parent=informatik) datenbanken = MindMapNode(name="Datenbanken", parent=informatik) softwareentwicklung = MindMapNode(name="Softwareentwicklung", parent=informatik) computergrafik = MindMapNode(name="Computergrafik", parent=informatik) cybersicherheit = MindMapNode(name="Cybersicherheit", parent=informatik) # Alle Nodes zur Session hinzufügen all_nodes = [physik, chemie, biologie, astronomie, geologie, quantenphysik, relativitätstheorie, thermodynamik, philosophie, geschichte, linguistik, literaturwissenschaft, religionswissenschaft, soziologie, psychologie, politikwissenschaft, wirtschaftswissenschaften, maschinenbau, elektrotechnik, bauingenieurwesen, verfahrenstechnik, humanmedizin, zahnmedizin, pharmazie, neurologie, onkologie, künstliche_intelligenz, datenbanken, softwareentwicklung, computergrafik, cybersicherheit] db.session.add_all(all_nodes) # Füge einen Beispiel-Gedanken hinzu thought = Thought( content="Dies ist ein Beispiel-Gedanke zur Wissenschaft allgemein.", branch="Wissenschaft", user_id=1 # Admin-Benutzer ) db.session.add(thought) root.thoughts.append(thought) # Füge weitere Beispiel-Gedanken hinzu thought_ai = Thought( content="Künstliche Intelligenz transformiert viele Bereiche der Wissenschaft und Gesellschaft.", branch="Künstliche Intelligenz", user_id=1 ) db.session.add(thought_ai) künstliche_intelligenz.thoughts.append(thought_ai) thought_physik = Thought( content="Die Quantenphysik stellt unser Verständnis der Realität grundlegend in Frage.", branch="Quantenphysik", user_id=1 ) db.session.add(thought_physik) quantenphysik.thoughts.append(thought_physik) db.session.commit() print("Datenbank wurde erfolgreich initialisiert!") print(f"Admin-Benutzer erstellt: admin/admin123") print(f"Root-Node 'Wissenschaft' erstellt mit mehreren Hauptkategorien und Unterkategorien")