32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
|
|
"""Migration 2026-05-25: profil.reservieren_freigeschaltet einfuehren.
|
||
|
|
|
||
|
|
Default fuer bestehende und neue Profile: 0 (nicht freigeschaltet).
|
||
|
|
Lehrer muss pro SuS aktiv freischalten. Ersetzt den geplanten L1-Gate-
|
||
|
|
Automatismus, weil das Setting heterogen ist (manche SuS drucken zuhause).
|
||
|
|
|
||
|
|
Idempotent.
|
||
|
|
"""
|
||
|
|
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(profil)")}
|
||
|
|
if "reservieren_freigeschaltet" in spalten:
|
||
|
|
conn.close()
|
||
|
|
print("[migration] profil.reservieren_freigeschaltet existiert bereits.")
|
||
|
|
return
|
||
|
|
conn.execute("ALTER TABLE profil ADD COLUMN reservieren_freigeschaltet INTEGER DEFAULT 0")
|
||
|
|
conn.execute("UPDATE profil SET reservieren_freigeschaltet = 0 WHERE reservieren_freigeschaltet IS NULL")
|
||
|
|
conn.commit()
|
||
|
|
conn.close()
|
||
|
|
print("[migration] profil.reservieren_freigeschaltet ergaenzt (alle Profile default=0).")
|
||
|
|
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
main()
|