144 lines
6.4 KiB
Python
144 lines
6.4 KiB
Python
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") |