Files
MABEA/backend/alembic/versions/0004_add_fach.py
T
patrickandClaude Sonnet 5 a2877f5672
CI / backend-tests (push) Successful in 1m0s
CI / frontend-build (push) Successful in 5m56s
Feste Fächer-Liste je Objekttyp (Vorlagen-Positionen: Dropdown + Sonstiges)
Nutzer-Vorgabe: Rucksack-Fächer sollen aus einer festen, je Objekttyp
gepflegten Liste gewählt werden können statt jedes Mal Freitext einzutippen.
Neue Tabelle fach (Migration 0004), CRUD-Endpoints /faecher, Admin-Tab
Struktur bekommt Fach-Verwaltung, Vorlagen-Editor nutzt Dropdown mit
"Sonstiges"-Freitext-Fallback.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L85hmKbvX7Cqkq47KnQhFt
2026-09-04 10:24:15 +02:00

37 lines
1018 B
Python

"""fach-Tabelle: feste Fächer-Liste je Objekttyp
Revision ID: 0004_add_fach
Revises: 0003_add_benutzer_email
Create Date: 2026-09-04
Nutzer-Vorgabe: feste Fächer-Liste pro Objekttyp statt Freitext bei jeder
Vorlagenposition. Additive Schema-Erweiterung, bestehende Vorlagenpositionen
(freies Fach-Textfeld) bleiben unverändert nutzbar (Prompt-Vorgabe "optional
sonstiges für freies Textfeld").
"""
from typing import Sequence, Union
from alembic import op
revision: str = "0004_add_fach"
down_revision: Union[str, None] = "0003_add_benutzer_email"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
op.execute(
"""
CREATE TABLE fach (
id SERIAL PRIMARY KEY,
objekttyp_id INTEGER NOT NULL REFERENCES objekttyp(id),
name TEXT NOT NULL,
sortierung INTEGER NOT NULL DEFAULT 0
);
"""
)
def downgrade() -> None:
op.execute("DROP TABLE fach;")