Initial import: Carteasy Shop (Dev-Stand)
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
🗄️ Database Setup Utility für Problem-FAQ System
|
||||
ACHTUNG: Nur ausführen wenn DB-Zugang verfügbar!
|
||||
"""
|
||||
|
||||
import mysql.connector
|
||||
import json
|
||||
import sys
|
||||
from config import DB_CONFIG
|
||||
|
||||
def create_problem_database():
|
||||
"""Erstellt die Problem-Datenbank und Tabellen"""
|
||||
try:
|
||||
# Verbindung ohne spezifische Datenbank
|
||||
temp_config = DB_CONFIG.copy()
|
||||
temp_config.pop('database', None)
|
||||
|
||||
connection = mysql.connector.connect(**temp_config)
|
||||
cursor = connection.cursor()
|
||||
|
||||
# Datenbank erstellen
|
||||
cursor.execute(f"CREATE DATABASE IF NOT EXISTS {DB_CONFIG['database']} CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci")
|
||||
cursor.execute(f"USE {DB_CONFIG['database']}")
|
||||
|
||||
print(f"✅ Datenbank '{DB_CONFIG['database']}' erstellt/ausgewählt")
|
||||
|
||||
# SQL-Script ausführen
|
||||
with open('/var/www/vhosts/intelectra.de/httpdocs/core/python/create_problem_database.sql', 'r', encoding='utf-8') as f:
|
||||
sql_script = f.read()
|
||||
|
||||
# Script in einzelne Statements aufteilen
|
||||
statements = [stmt.strip() for stmt in sql_script.split(';') if stmt.strip()]
|
||||
|
||||
for statement in statements:
|
||||
if statement.upper().startswith(('CREATE', 'INSERT')):
|
||||
try:
|
||||
cursor.execute(statement)
|
||||
print(f"✅ SQL Statement ausgeführt: {statement[:50]}...")
|
||||
except mysql.connector.Error as err:
|
||||
print(f"⚠️ Warning: {err} für Statement: {statement[:50]}...")
|
||||
|
||||
connection.commit()
|
||||
cursor.close()
|
||||
connection.close()
|
||||
|
||||
print("\n🎉 Database Setup erfolgreich abgeschlossen!")
|
||||
return True
|
||||
|
||||
except mysql.connector.Error as err:
|
||||
print(f"❌ Database Error: {err}")
|
||||
return False
|
||||
except Exception as e:
|
||||
print(f"💥 Setup Error: {str(e)}")
|
||||
return False
|
||||
|
||||
def test_database_connection():
|
||||
"""Testet die Datenbankverbindung"""
|
||||
try:
|
||||
connection = mysql.connector.connect(**DB_CONFIG)
|
||||
cursor = connection.cursor()
|
||||
|
||||
# Test-Query
|
||||
cursor.execute("SELECT COUNT(*) FROM problem_solutions WHERE active = TRUE")
|
||||
count = cursor.fetchone()[0]
|
||||
|
||||
cursor.close()
|
||||
connection.close()
|
||||
|
||||
print(f"✅ Database Connection OK - {count} aktive Probleme gefunden")
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ Database Connection Failed: {str(e)}")
|
||||
return False
|
||||
|
||||
def show_sample_problems():
|
||||
"""Zeigt Beispiel-Probleme aus der Datenbank"""
|
||||
try:
|
||||
connection = mysql.connector.connect(**DB_CONFIG)
|
||||
cursor = connection.cursor(dictionary=True)
|
||||
|
||||
cursor.execute("""
|
||||
SELECT problem_title, problem_category, urgency_level, frequency_score
|
||||
FROM problem_solutions
|
||||
WHERE active = TRUE
|
||||
ORDER BY frequency_score DESC
|
||||
LIMIT 5
|
||||
""")
|
||||
|
||||
problems = cursor.fetchall()
|
||||
|
||||
print("\n📊 Top 5 Probleme in der Datenbank:")
|
||||
print("-" * 50)
|
||||
for i, problem in enumerate(problems, 1):
|
||||
print(f"{i}. {problem['problem_title']}")
|
||||
print(f" Kategorie: {problem['problem_category']}")
|
||||
print(f" Urgency: {problem['urgency_level']}")
|
||||
print(f" Häufigkeit: {problem['frequency_score']}%")
|
||||
print()
|
||||
|
||||
cursor.close()
|
||||
connection.close()
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ Error showing problems: {str(e)}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("🗄️ Problem-FAQ Database Setup")
|
||||
print("=" * 40)
|
||||
|
||||
if len(sys.argv) > 1 and sys.argv[1] == "--create":
|
||||
print("🔨 Creating database and tables...")
|
||||
if create_problem_database():
|
||||
test_database_connection()
|
||||
show_sample_problems()
|
||||
else:
|
||||
print("🧪 Testing existing database connection...")
|
||||
if test_database_connection():
|
||||
show_sample_problems()
|
||||
else:
|
||||
print("\n💡 Tipp: Verwende --create um die Datenbank zu erstellen")
|
||||
print(" Beispiel: python3 setup_database.py --create")
|
||||
Reference in New Issue
Block a user