"""Migration 2026-05-25: Software-Karten kriegen Bild-BLOB-Spalten. Bilder werden direkt in der DB gespeichert (analog zu arduino.lehrstun.de's bauteile.bild). Vorteil gegenueber static/img/: kein Filesystem-Drift, ein Backup deckt alles ab, kein Sync zwischen lokaler DB und Hetzner noetig. Idempotent: prueft PRAGMA table_info bevor ADD COLUMN. """ import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) from database import get_db def main(): conn = get_db() spalten = {row["name"] for row in conn.execute("PRAGMA table_info(software_seite)")} aenderungen = [] if "bild_blob" not in spalten: conn.execute("ALTER TABLE software_seite ADD COLUMN bild_blob BLOB") aenderungen.append("bild_blob") if "bild_mime" not in spalten: conn.execute("ALTER TABLE software_seite ADD COLUMN bild_mime TEXT") aenderungen.append("bild_mime") conn.commit() conn.close() if aenderungen: print(f"[migration] Spalten ergaenzt: {', '.join(aenderungen)}.") else: print("[migration] Spalten bild_blob + bild_mime existieren bereits — nichts zu tun.") if __name__ == "__main__": main()