36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
|
|
"""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()
|